CodeFirst的一些操作!!
CodeFirst的一些操作!!
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();