Linq学习<三> linq to entity
之前一直用sql选择出数据放在一个集合中,然后再用Linq或者lambda去操作数据,今天学了Linq to entity 才知道原来linq产生是为了Entity。也就是EDM(实体数据模型)
关于EDM,个人觉得这篇博文写的不错:http://www.cnblogs.com/wyqlijin/archive/2011/02/25/1964934.html 这位仁兄的系列文章将的比较详细,高深!
我们创建完ADO.Net Data Entity之后就可以再vs中直接操作数据表和字段了
下面是第一个程序:
正如注释所言:我们创建完EDM后会新建一个model.edmx模型,改模型中有两个部分
1.上下文 2.实体。 上下文继承自ObjectContext 实体继承自EntityObjecthttp://www.cnblogs.com/fjsnail/p/3227683.html参考这篇
public void LinqToEntityTest() { studyEntities2 study = new studyEntities2(); //studyEntities2上下文类名,创建objectEntity(studyEntities2)的实例 //有关EDM 参考http://www.cnblogs.com/wyqlijin/archive/2011/02/25/1964934.html var queryResult = from item in study.Customer //study.Customer相当于取得整个表 where item.Country == "USA" select new { name = item.ContactName, country = item.Country }; Console.WriteLine("----------------LinqToEntity----------------"); foreach (var item in queryResult) { Console.WriteLine(item); } }
使用LINQ to Entities类的第一步是为要访问的数据库创建ObjectContext对象的一个实例,ObjectContext是在数据源中创建的.edmx 文件的编译类。这个对象是数据库的网关,提供了在程序中控制它的所有方法。它还是创建业务对象的工厂,业务对象对应于数据库中存储的概念化实体(例如,顾客和产品)。
在项目中,数据上下文类称为StudyEntilies2,从Model1.edmx文件中编译。LinqToEntityTest()方法的第一个操作是创建studyEntities2的一个实例,如下所示:
studyEntities2 study = new studyEntities2();
在“选择数据库对象”(Choose Your Database Objects)窗格中选择Customers表时,会把Customer对象添加到Model1.edmx的LINQ to Entities类中,并把Customers成员添加到StudyEntilies2对象中,以查询Northwind数据库中的Customer对象。实际的LINQ查询语句把northWindEntities的Customers成员用作数据源,建立查询。