CodeFirst的一些操作!!

CodeFirst的一些操作!!

转载 2016-08-05 21:03:32

1 首先是codefirst怎么做,这个首先肯定要引入EntityFramework,然后在model中创建实体类,例如书籍与出版社publisher和book两个实体类,然后再publisher里有个字段是Icolloction,因为一个出版社有很多书,而书只属于一个出版社,然后再配置实体的数据类型EntityTypeConfiguration,然后在Dbcontext中的OnCreating方法中增加这些配置就可以了。

2 接下来就是可能会发生代码迁移,那就是用Enable-Migrations和update-database,就在包管理器的控制台下输入命令就可以了。

​​​​​3 说说遇到的问题吧,codefirst有一个缺点就是当字段标记为主键时EF会认为这个标记为标识列,但是数据库却不同步,所以会产生错误。幸亏EF提供了许多特性,利用DatabaseGenerated(DatabaseGeneratedOption.None)就可以防止标记为标识列。也可以在设置约束的时候进行这个配置。

4 关于增删改查。

1)​ 增:DbContext.Entitys.Add(entity);

           DbContext.saveChanges();

2)删:DbContext.Entitys.Attach(entity);

            DbContext.Entitys.Remove(entity);​

            DbContext.savechanges();

3) 改:DbContext.Entitys.Attach(entity);

           DbContext.Entry(entity).state=EntityState.Modified;

           DbContext.savechanges();

原文地址:https://www.cnblogs.com/sunliwang/p/6544427.html