这是我在博客园的第一篇博客,开通此博客的目的是整理学过的知识点,以后再碰到相同的问题后会有文档可以查询。
话不多说,开撸。
1.打开VS2013建立WPF应用程序,选择对应的项目。
2.安装EF程序包,打开 工具—》NuGet程序包管理器—》程序包管理器控制台,输入 install-package entityframework。
如上图所示,已经成功安装EF 6.1.3到当前解决方案目录下。
3.添加空项目XXX.DAL存放数据访问相关类。
4.添加空项目XXX.Model存放与数据库相匹配的模型,并添加相应的数据表如TSysUser类,右键点击项目XXX.Model在输出类型
这一栏将控制台应用程序更改为类库,点击生成事件,在后期生成事件命令行输入
set targetFloder=$(ProjectDir)..\..\Common\
xcopy /r /y "$(TargetDir)TCMedcine.Model.dll" "%targetFloder%"将生成的类库文件TCMedcine.Model.dll拷贝到与项目同级的Common文件夹下面。
5.在XXX.DAL项目中添加SysContext继承DbContext,z在SysCntext添加如下代码
public class SysContext : DbContext
6.配置链接字符串
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <connectionStrings> <add name="SysContext" connectionString="Data Source=(local); Database=Test; User ID=sa; Password=123456;" providerName="System.Data.SqlClient"/> </connectionStrings>链接字符串放到启动项的配置文件中。
{ public SysContext() : base("name=SysContext") { }public DbSet<TSysUser> TSysUsers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{ modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>(); }ORM中O就是SysContext中的TSysUsers,就是对象,R是数据库中的表,M是O和R的映射关系。ORM对传统方式的改进:
充当桥梁,实现了关系数据和对象数据的映射,通过映射自动产生SQL语句。对常用的操作,节省了写SQL的步骤。
创建SysContext类主要来完成EF的功能,步骤如下:
1) 为每一个entity set创建一个DbSet,在EF中,通常情况下一个entity set对应数据库中的一张表,一个entity对应表中的一行。
2) 指定连接字符串构造函数中的base(“name=SysContext”).
3) 指定单数形式的表名
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
默认情况下会生成复数形式的表,如TSysUsers.