知識儲備
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<>的差別:
前者是直接将資料加載到本地的記憶體中
後者是采用延遲加載,用的時候才去查