使用EF“代码优先”函数库操作现有数据库

使用EF“代码优先”函数库操作现有数据库

ID:37726093

大小:318.50 KB

页数:11页

时间:2019-05-29

使用EF“代码优先”函数库操作现有数据库_第1页
使用EF“代码优先”函数库操作现有数据库_第2页
使用EF“代码优先”函数库操作现有数据库_第3页
使用EF“代码优先”函数库操作现有数据库_第4页
使用EF“代码优先”函数库操作现有数据库_第5页
资源描述:

《使用EF“代码优先”函数库操作现有数据库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用EF“代码优先”函数库操作现有数据库http://blog.joycode.com/scottgu/archive/2010/09/06/116066.joy原文发表地址]:UsingEF“CodeFirst”withanExistingDatabase[原文发表时间]:2010/8/411:09AM上个月我博客里提到了EntityFramework4新的“代码优先”开发模式。EF“代码优先”类库启用超棒的编码至上的开发工作流来访问数据。它让你可以:·不需要打开一个设计工具或定义XML映射文件就可

2、以进行开发。·定义模型对象时只需写一个简单的类,而不需要指定基类。·使用“惯例高于配置”的方式实现数据库持久化,不需要显式配置任何信息。在我的第一篇文章里我介绍了EF“代码优先”类库,并示范了使用EF4默认的映射惯例来创建一个新的数据库。这些默认惯例在新的应用程序里工作的很好,而且还避免你显式配置任何东西从/往数据库中映射类型。后来我又写了第二篇自定义数据库结构映射的文章,讨论了覆盖默认的持久化映射规则,和自定义数据库结构的方法。今天的文章我将回答最近很多人问我的问题:“如何对现有的数据库使用EF代码

3、优先类库?”使用EF“代码优先”类库操作现有数据库实际上,EF代码优先类库和现有的数据库工作的非常好,而且还是一个很好的编码至上的开发模式。特别是,你可以用“简单CLR对象”(即POCO)定义好模型对象,用默认的映射惯例,或用自定义的映射规则,从/往数据库里映射它们。下面分步示范了使用EF“代码优先”类库操作现有数据库的方法。第一步:创建一个新的ASP.NETWeb应用程序项目让我们从创建一个新的ASP.NETWeb应用程序项目开始。我前两篇EF“代码优先”文章用的是ASP.NETMVC—这篇文章我将

4、用ASP.NETWeb窗体(来实现)。请注意,不论你使用哪种类型的ASP.NET应用程序,背后的EF理念都是相同的。我们使用VS2010(或者免费的VisualWebDeveloper2010体验版)的“文件->新建项目”菜单,并选择“ASP.NETWeb应用程序”项目模板来创建新的程序。VS2010里新的“ASP.NETWeb应用程序”项目是一个很好的初学者模板,它的默认母板布局页面设计使用的是CSS(我在以前的文章里提到了新的初学者项目模版)。当创建完毕以后,你可以看到它里面包含下面这些文件:我们

5、并不需要这些文件(实际上也可以使用“ASP.NET空Web应用程序”模版)—但如果用它们的话,可以让我们的程序看起来更漂亮一些。第二步:添加对EF代码优先库的引用下一步将为我们的项目添加对EF代码优先类库的引用。在解决方案资源管理器上右击“引用”节点,并选择“添加引用”。你需要引用“Microsoft.Data.Entity.Ctp.dll”文件,你下载并安装EF代码优先类库后,它安装在“ProgramFilesMicrosoftADO.NETEntityFrameworkFeatureCTP4

6、Binaries”文件夹里。添加完引用后,项目引用窗口类似下图:第三步:Northwind数据库如果你的SQLServer数据库已经安装了Northwind(或者其它的数据库),你可以跳过这一步。如果你尚未安装,可以在这里下载它。你既可以使用里面的.SQL文件来将它安装到SQL数据库里,也可以拷贝Northwind.mdf这个SQLExpress文件到你应用程序的App_Data文件夹里:第四步:创建我们的模型层现在我们来写模型类,并使用EF“代码优先”类库将它们映射到我们的Northwind数据

7、库。下面就是所有要写的代码—就这些:下面是这些代码的详细工作原理:POCO模型类EF“代码优先”类库允许我们使用“简单CLR对象”(即POCO)来表现数据库里的实体。也就是说我们的模型类不需要继承自一个基类,也不需要实现任何的接口或特性(attribute)。这样可以使我们的模型类型保持整洁并且“持久化无关”。前面我们定义了两个POCO类—“Product”(产品)和“Category”(种类)—用来表示Northwind数据库里的“Product”(产品)和“Category”(种类)表。两个类的属

8、性分别对应表的各个列。“Product”(产品)或“Category”(种类)的实例分别对应表里的一行。可空列请注意“Product”(产品)类里有些属性被定义成可空属性(即Decimal?—说明它是一个可空类型)。数据表的可空列(Nullablecolumn)的类型如果是值类型的话,在模型类里应该用可空属性表示:如果在模型类中,你不会访问可空列,你可以选择省略它。比如说,Northwind的“Product”(产品)表里的“QuantityPerUni

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。