知识储备
1.自动属性
2.隐式推断类型var
3.对象初始化器与几何初始化器
4.匿名类
5.扩展方法
6.Lambda表达式(Linq)
下面新建一个Demo,复习以上的知识
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public void CreateDemo()
{
Person p=new Person(){ Name = "wzp",Age = 12};
List<Person> list = new List<Person>
{
new Person() {Name = "wzo", Age = 12},
new Person() {Name = "wzp", Age = 13}
};
var c= new {Name="www",Age=12};//匿名类 }
DelDemo del = (a, b) => a > b;//自己手写的委托
var func = new Func<int, int, bool>((a,b)=>a>b);//系统有返回值委托
var action = new Action<string>(s => { });//无返回值的委托
ORM
O=>Object代表对象,R=>Relation关系,M=>Mapping代表映射,连起来表示对象与表关系的映射的框架,官方的说法是:面向对象的对象模型和关系型数据库的数据结构相互转化。
.NetEF框架
EF框架本身封装了ADO.NET,在此之上引入ORM概念模型,作用是将实体的变化映射到数据数据库中.
EF的强大作用
1.跟vs开发工具集成度比较好,自动化程度高,代码中都是操作强类型,简单,快捷方便,大大提高了开发效率
2.可以支持跨数据库,由于我们开发人员代码中全是对实体的操作,不涉及对数据库的具体操作,所以只需要改一下配置,就可以实现跨数据库.
3.EF提高的模型设计器非常强大,也附带的自动化模型生成代码的功能,ModelFirst,DBFirst.
缺陷就是:性能较差(有生成sql脚本的过程),生成复杂的sql效率超慢
IEnumerable<>和IQuerable<>的区别:
前者是直接将数据加载到本地的内存中
后者是采用延迟加载,用的时候才去查