0
私は、移行を追加しようとしたすべての時間を使用して新しい列を生成することなく、1対1の関係と、それは、このようなコードを私に示していますEF:流暢API
public override void Up()
{
AddColumn("dbo.Orders", "OrderItems_Id", c => c.Int(nullable: false));
CreateIndex("dbo.Orders", "OrderItems_Id");
AddForeignKey("dbo.Orders", "OrderItems_Id", "dbo.OrderItems", "Id");
}
私はグーグルを追求し、発見していません解決策、私のエンティティは、私は注文によって外部キー参照としてorderItemsのOrderIdを設定したい。
public OrderItemsMapping()
{
this.HasKey(x => x.Id);
this.Property(x => x.GoodId).IsRequired();
this.Property(x => x.OrderId).IsRequired();
this.Property(x => x.Price).IsRequired();
this.Property(x => x.Quantity).IsRequired();
this.Property(x => x.Score).IsRequired();
this.HasOptional(x => x.Order)
.WithOptionalPrincipal(x => x.OrderItems)
.Map(configurationAction: new Action<ForeignKeyAssociationMappingConfiguration>(x => x.MapKey()));
}
私が言及する必要が別のものがx.MapKey( "ID")がエラーをトリガすることです:
public class OrderItems
{
public int Id { get; set; }
public int OrderId {get; set;}
public virtual Orders Order { get; set; }
}
public class Orders
{
public int Id { get; set; }
public virtual OrderItems Order { get; set; }
}
私の流暢APIはbelowsのように見えるの名前は、それを設定していましたユニークでなければなりません。ありがとう。
Whtaは 'Id'と' OrderId'の違いでしょうか? 1対1の関係がある場合、「OrderId」はPKでなければならない。 –
@FarhadJabiyevありがとうございます。OrderIdをキーに設定して問題を解決しました。 – MapleStory
さて、これを答えとして追加しましょう。 FHマッピングで 'Optional'を' Required'に変更した方が良いでしょう。 –