实体框架与可空列和无外键关联

时间:2014-08-04 17:44:23

标签: entity-framework foreign-keys associations nullable

我试图将Entity Framework与不使用外键的数据库一起使用。更糟糕的是,具有关系的表使用可以为null的相关字段。例如,Order表格中ClientID的列为nullable。记住我没有创建这个数据库,也不能改变它我仍然希望能够使用Entity Framework(v6.1)对数据库执行CRUD操作。

正如您所料,问题与实体之间的关联有关。我可以手动创建关联,但我无法设置引用完整性,因为实体中的属性映射到数据库中可以NULL的列。

有没有办法解决这个问题?也许是一种在不必定义参照完整性的情况下使用关联的方法?授予我应该确保在删除给定父级的情况下删除任何子记录。

1 个答案:

答案 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);