第一章(2) 怎么用Entity Framework
EF是集成到Visual Stutio2010中的一部分,要用它很简单,只须要将ADO.NET Entity Data Model加入到你的项目中就可以(不过前提是你安装了EF包,安装EntityFramework方法)。装好EF之后,在你的项目上右键,添加,选择新项。在图1-2-1中的对话框中选择,ADO.NET Entity Data Model 模版。这个模版位于Data模版下。点击“添加”启动Entity Data Model向导。
图1-2-1
接下来显示的是两个选项:选择以现有的数据库开始建模还是新建一个空白模型。如图1-2-2所示:
图1-2-2
从已有的数据库中生成模型的是Database First的方法(PS:EF有DatabaseFirst、Model First和Code First)。Database First会根据数据库中已有的表、视图和存储过程自动建立对应的模型,而这些表对应到的前面提到的EntityType,如果表间有关联的话,就对应到前面所说的Assioation中。如果你已有数据库,用这种方式来建立模型非常好。
如果没有数据库,你要从空的模型开始,这就是Model First的方法。在设计界面上右键,逐个创建新的EntityType、Assioation或者是inheritances(继承关系)。你也可以从工具框中将他们拖入到设计界面上。一旦你建模完成,在界面上右键,选择Generate Database from Model(从模型中生成数据库)。这样它会根据你刚才建立的实体类型以及它们的关系,在数据库中创建与之对应的表和外键关系。
图1-2-3显示了如何在设计界面中修改映射细节,比如Customer表中的的每一列怎么和Customer实体类型中的每一个属性映射起来。
图1-2-3
Okey,现在你有模型了,也有对应的数据库了,怎么编程呢?这就是EF闪光的地方了:你在程序中只需要对模型中的对象(Entity)操作,用Customer实体就跟用其他别的对象一样。
如果你想要在数据库Customer表中插入一条记录,那么你可以这样做:用new操作符创建一个Customer实体类型的实例,给它的属性赋上值,再把它加到内存中的context中,然后调用SaveChanges()方法,就大功告成了。(PS:Context翻译成上下文,这指的是内存中对数据库的一个连接。)所有的SQL语句EF都会自己生成然后发送到数据库中执行。如果要从数据库中获取Customer,你可以用Linq或者是Entity SQL来创建查询。
Recipes这整部书会向你一步步的展示几乎所有的数据库操作的场景:怎么用这些模型去查找、插入、修改和删除;怎么将EF用到各种类型的应用程序中。一起期待吧!