我试图将Entity Framework与不使用外键的数据库一起使用。更糟糕的是,具有关系的表使用可以为null的相关字段。例如,Order
表格中ClientID
的列为nullable
。记住我没有创建这个数据库,也不能改变它我仍然希望能够使用Entity Framework(v6.1)对数据库执行CRUD操作。
正如您所料,问题与实体之间的关联有关。我可以手动创建关联,但我无法设置引用完整性,因为实体中的属性映射到数据库中可以NULL
的列。
有没有办法解决这个问题?也许是一种在不必定义参照完整性的情况下使用关联的方法?授予我应该确保在删除给定父级的情况下删除任何子记录。
答案 0 :(得分:1)
我认为这会奏效:
public class Order
{
//other properties
public int? ClientId {get; set;}
}
并设置
modelBuilder.Entity<Order>()
.HasOptional(x=>x.Client)
.WithMany(x=>x.Orders)
.WithForeignKey(x=>x.CliendId);