2017-09-06 24 views
2

私は多くのエンティティを持っています。そのうちの1つはOrderLineエンティティは少数の関係を使用します。それはAccountTransactionとの関係です。コンテキストからAccountTransactionクラスを取得すると、遅い負荷でOrderLineレコードを取得できます。しかし、コンテキストからOrderLineクラスを取得すると、AccountTransactionナビゲーションプロパティはnullです。 この問題を解決するにはどうすればよいですか?エンティティフレームワーク任意選択の1対1リレーションシップは機能しません

public partial class OrderLine : Base 
{ 

    [Key, ForeignKey("AccountTransaction")] 
    public int OrderLineId { get; set; } 

    public virtual AccountTransaction AccountTransaction { get; set; } 
} 

public class AccountTransaction 
{ 
    [Key] 
    public int TransactionId { get; set; } 

    [ForeignKey("OrderLine")] 
    public int? OrderLineId { get; set; } 

    public virtual OrderLine OrderLine { get; set; }   
} 


var orderLine = context.OrderLines.Find(167069); 
var accTransaction = context.AccountTransactions.Find(38770); 


//orderLine.AccountTransaction; //here account transaction is null 
//accTransaction.OrderLine;//here orderLine is not null. 

答えて

0

あなたは誤って使用しています[ForeignKey]です。これは子レコードからの関係のキーフィールドを指定するために使用されます。この場合はAccountTransactionとなります。モデルを次のように変更してみてください。

public partial class OrderLine : Base 
{ 

    [Key] 
    public int OrderLineId { get; set; } 

    public virtual AccountTransaction AccountTransaction { get; set; } 
} 

public class AccountTransaction 
{ 
    [Key] 
    public int TransactionId { get; set; } 

    [Index(IsUnique=true)] 
    public int? OrderLineId { get; set; } 

    [ForeignKey("OrderLineId")] 
    public virtual OrderLine OrderLine { get; set; }   
} 

他の問題が発生した場合は、教えてください。 :)

+0

私は試しましたが、私はこの例外を発生させます。 AccountTransaction_OrderLine_Source :: Multiplicityは、 'AccountTransaction_OrderLine'という関係のRole 'AccountTransaction_OrderLine_Source'では無効です。依存ロールのプロパティはキープロパティではないため、依存ロールの多重度の上限は '*' – Yargicx

+0

でなければなりません。この構造は通常の1:1パターンではなく1: '[Index(IsUnique = true)]'を 'AccountTransaction.OrderLineId'に追加して修正するか試してみてください。私は私の答えも編集します。 – CptRobby

+0

私はほとんどの場合、1:1の関係は、両方のエンティティのキ​​ーを介して、追加のプロパティではなく、直接操作する必要があると確信しています。 OrderLineIdに[Key]属性を移動し、型をintに変更してください(この値はNULL値にできないため) – Miguel

関連する問題