关于Entity Framework 数据模型 的开发有三种模式:1.引用数据库方式;2.在VS中新建EF空模型Model 方式;3.Code 方式
Entity Framework 数据模型 引用"引用数据库方式"进行开发创建的使用,具体如下:
开发环境:VS2012
数据库:SQL Server 2008
Entity Framework 版本:6.12
1.新建数据库
在数据库中新建数据库,并创建数据表,以下截图只供参考:
2.新建项目
在VS中新建一个控制台应用程序 Future.LifeWillBetter.DAL.ForDBConsoleApplication
3.新建数据模型
右击 Future.LifeWillBetter.DAL.ForDBConsoleApplication-》 添加—》新建项
点击”新建连接“,这是一个连接数据库的;然后找到刚才新建的数据,并选中如下图
点击确定,完成之后,直接下一步.
直接下一步.
,当然也可以选择视图,存储过程,然后点击完成。
然后会生成一个FutureLifeWillBetterDALForDBModel.edmx数据模型,如图:
4.数据模型扩展使用
在开发中不可能不会新加数据表或者存储过程以及视图,所以要知道怎么扩展!
①我在数据库Future.LifeWillBetter中,新建一张表
CREATE TABLE [dbo].[T_Comments]( [Id] [int] IDENTITY(1,1) NOT NULL, [ArticleId] [int] NULL, [AuthorName] [nvarchar](50) NULL, [Contents] [nvarchar](max) NULL, [PubDate] [datetime] NULL ) GO
这样的话,我的数据表就新建成功了,下一步就是更新我们的FutureLifeWillBetterDALForDBModel.edmx数据模型
双击打开FutureLifeWillBetterDALForDBModel.edmx 在空白处右击,从”数据库更新模型“
点击确定,会出现一个刚开始选择数据表、视图、存储过程的窗体,继续...
我全部勾选,然后点击完成,点击完成之后记得保存数据模型文件即:FutureLifeWillBetterDALForDBModel.edmx;这样我们就能在FutureLifeWillBetterDALForDBModel.edmx这个数据模型的FutureLifeWillBetterDALForDBModel.tt看到一个T_Comments实体类;
这是我们新增数据表,当然如果我们删除数据表也可以用同样的方式,将数据模型中的实体删除。
5.数据模型,文件介绍
①App.config :配置文件,此文件已包含实体数据的数据库链接等基本信息
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <connectionStrings> <add name="Entities" connectionString="metadata=res://*/FutureLifeWillBetterDALForDBModel.csdl|res://*/FutureLifeWillBetterDALForDBModel.ssdl|res://*/FutureLifeWillBetterDALForDBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=Future.LifeWillBetter;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration>
②FutureLifeWillBetterDALForDBModel.Context.cs:实体数据模型的上下文(FutureLifeWillBetterDALForDBModel.Context.tt下)
③FutureLifeWillBetterDALForDBModel.tt:这个下面包含了具体的实体(也就是以数据库表为单位的类)
再次看下目录结构,如图:
完!