entity framework实体框架导航属性对应数据库生成的外键如何取消,不让他生成外键约束
public class SchoolEntities : DbContext { protected override void OnModelCreating( DbModelBuilder modelBuilder )
{ modelBuilder.Entity<aspnet_UsersInRoles>().HasMany(i =>i.Users).WithRequired().WillCascadeOnDelete(false); } }
aspnet_UsersInRoles:实体类
移除所有的:
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
public class SchoolEntities : DbContext { public DbSet<Course> Courses { get; set; } public DbSet<Department> Departments { get; set; } public DbSet<Instructor> Instructors { get; set; } public DbSet<OfficeAssignment> OfficeAssignments { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } }
这几种方法貌似都可以的。
,能不能不让他在数据库表里面生成外键列,也就是生成的那个列不是外键可以为空,但是在代码里面可以进行级联删除保存等操作
@罗拉可乐: 应该不行的,Nhibernate不行,EF我还没有试过,你可以试验一下。
@ArnoldZhang: nh好像可以 手动吧生成的外键给删除了不影响啊