天天看點

ASP.NetMVC學習總結1

知識儲備

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<>的差別:

 前者是直接将資料加載到本地的記憶體中

後者是采用延遲加載,用的時候才去查