1
    [Table("Table1")]
    public class Entity1
    {
       [Key, ForeignKey("entity1")]
       public int ID{get;set;}
       public virtual Entity2 entity2{get;set;}
       public virtual Entity3 entity3{get;set;}
    }


これが私のメインエンティティです。ここでは、このエンティティをEntity2および3と、Entity1、2、3の主キーでもある同じ外部キーでマップします。

    [Table("Table2")]
    public class Entity2
    {
       [Key]
       public int Entity1ID{get;set;}
       // few entity specific properties
    }


    [Table("Table3")]
    public class Entity3
    {
       [Key]
       public int Entity1ID{get;set;}
       // few entity specific properties
    }


マッピングにコンテキストクラスを使用すると、エラーが発生します。the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must

4

2 に答える 2

2
modelBuilder.Entity<Entity1>().HasOptional(u => u.Entity2)
                           .WithRequired();
        modelBuilder.Entity<Entity1>().HasOptional(u => u.Entity2)
                          .WithRequired();


共有主キーの関係のみが必要な場合は、上記のコードを使用する必要はありません。そのため、アノテーション属性を削除してください。

于 2012-04-23T10:19:48.723 に答える
-1

同じ名前の2つのプロパティを持つことはできません。これを試して:

[Table("Table1")]
public class Entity1
{
   [Key, ForeignKey("Entity2"), ForeignKey("Entity3")]
   pubic int ID{get;set;}
   public virtual Entity2 Entity2{get;set;}
   public virtual Entity3 Entity3{get;set;}
}

ところで。とても奇妙なデザインのようです。

于 2012-04-23T09:46:26.733 に答える