现在刚开始来研究EntityFramwork,起初是在vs2012中通过工具来创建EF ,但是对我这种不熟悉菜鸟来说 有很多业务用EF做出来还是有点难度的,今天来手动搭建一个EF框架,大神勿喷
首先:创建一个类Menu 引用命名空间,因为表需要一个外键映射到主键
using System.ComponentModel.DataAnnotations;
创建类的时候在主键上添加唯一标识符[Key],EF不然执行会报错
public partial class Menu { [Key] public int MId { get; set; } public int MPId { get; set; } public string MName { get; set; } public string MIco { get; set; } public string MLink { get; set; } public int MSort { get; set; } public string MRemark { get; set; } public bool MIsShow { get; set; } public bool MIsDel { get; set; } public System.DateTime MAddTime { get; set; } }
第二步:创建EF上下文对象
public class DbContextFactory:DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约 } public DbSet<Menu> Menus { get; set; } }
第三步:配置Webconfig 第一次配置会出现“不支持关键字: "data source” 这是因为metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl这段语句里面修改相对应命名空间的名称
<add name="DbContextFactory1" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=dbdata;user id=sa;password=123456789;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
然后问题出现了“无法加载指定的元数据资源” 然后第二次修改数据配置
<add name="DbContextFactory" connectionString="Server=.;Database=dbdata;Uid=sa;Pwd=123456789;Pooling=true;Connection Lifetime=300;packet size=1000" providerName="System.Data.SqlClient" />
经过修改第二次修改配置文件 ,手动创建EF框架完成,不紧可以用EF使用简单的业务逻辑,如果不熟悉的也可以在此基础上添加添加复杂的数据层操作,注意:Webconfig配置页面的时候 name应该和你创建的EF上下文对象的名称一致