如何配置EF6多个indepdendent代码 - 首先是1:1单向映射?

时间:2017-01-16 02:34:22

标签: c# sql-server ef-code-first entity-framework-6

我想使用Code First Fluent API配置两个实体以实现独立的单向1:1映射。但我正在努力获得正确的配置(即使我的架构看起来正确)。

模型;

class User {
   Guid Id;
   virtual Subscription ActiveSubscription;
}

class Subscription {
   Guid Id;
   virtual User Owner;
}

在此关系中,Subscription.Owner应为NOT NULL,但User.ActiveSubscription应为NULLABLE

同一个Subscription可能有多个User,其中0..1被引用为User.ActiveSubscription

我正在使用以下EntityTypeConfiguration实现,但我无法INSERT这两个对象。

class UserMap : EntityTypeConfiguration<User> {
    HasOptional(x => x.ActiveSubscription)
        .WithOptionalDependent()
        .Map(m => m.MapKey("ActiveSubscription_Id"))
        .WillCascadeOnDelete(false);
}

class SubscriptionMap : {
    HasRequired(x => x.Owner)
        .WithOptional()
        .Map(m => m.MapKey("Owner_Id"))
        .WillCascadeOnDelete(true);
}

删除User应该CASCADE DELETESubscription表,但不应该是反对关系的情况。

从此映射生成模式后,它看起来是正确的,但我在INSERT上遇到错误(“无法确定依赖操作的有效排序。”)

0 个答案:

没有答案