码迷,mamicode.com
首页 > 其他好文 > 详细

泛型委托、Lambda、EF

时间:2015-09-10 20:59:33      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

泛型委托、Lambda、EF

托管和非托管

运行在CLR上面的就是托管

非托管就是像C、C++编译成一个exe文件直接交给了操作系统的内核执行

2)Lambda

本质就是一个匿名函数

=>:Lambda必须是这个符号

3)泛型委托

方法上面的泛型约束,一般用来约束返回值和传入参数

    //泛型委托

    public delegate T2 ArryDel<T1,T2>(T1 A,T1 B);

    //泛型委托

            ArryDel<int, bool> arry = new ArryDel<int, bool>(Func);

            ArryDel<int,string>arry1=delegate(int a,int b){return "";};

            //Lambda

            ArryDel<int, int> arry2 = (int a, int b) => { return a + b; };

4)泛型方法

       //泛型方法调用

            Test<int, string>(2, "123");

//定义

        public static int  Test<A, B>(A a, B b)

        {

            return 0;

        }

二、EF(Entity Framework)CRUD

-----》增

           //for (int i = 0; i < 10; i++)

            //{

            //    Student stu = new Student();//创建一个student对象

            //    stu.Age = 20;

            //    stu.Delflag = (short)DelflagEnum.noramal;

            //    stu.Gender = true;

            //    stu.Name = "蒋中正"+i;

            //    u1.Student.AddObject(stu);//告诉EF上下文,保存这个实体

            //}

            //u1.SaveChanges();//保存

---》改

            //修改操作时必须要对每一个属性都赋值,不赋值的会赋默认值

            Student stu1 = new Student();

            stu1.ID = 4;

            stu1.Name = "shit";

            stu1.Gender = true;

            u1.Student.Attach(stu1);//把对象附加到上下文,让上下文对这个实体进行跟踪处理

            u1.ObjectStateManager.ChangeObjectState(stu1, System.Data.EntityState.Modified); //将对象的状态更改为已更改

------》删

            //Student stu2 = new Student();

            //stu2.ID = 4;

            //u1.Student.Attach(stu2);//把对象附加到上下文,让上下文对实体进行跟踪处理

            //u1.ObjectStateManager.ChangeObjectState(stu2, System.Data.EntityState.Deleted);//标志为删除

--------》查

            #region 查询部分列

            var partialcol = from b in u1.Student

                             select new { b.Name, b.Gender };

            foreach (var item in partialcol)

            {

                Console.WriteLine(item.Name + "   " + item.Gender);

            }

-----》lambda查询

       var lambda = u1.Student.Where<Student>(a => a.ID > 20);

            foreach (var item in lambda)

            {

                Console.WriteLine(item.Name);

            }

泛型委托、Lambda、EF

标签:

原文地址:http://www.cnblogs.com/hetong/p/4798881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!