标签:
泛型委托、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);
}
标签:
原文地址:http://www.cnblogs.com/hetong/p/4798881.html