2016-10-30 5 views
0

私はLocationクラスを持っています。そのクラスに別の2つのLocationオブジェクト(PreviousLocationとNextLocation)への参照が必要です。私はこれを試してみました:同じクラス間のエンティティフレームワークの関係

public class Location 
{ 
    public int LocationId { get; set; } 

    [ForeignKey("LocationId")] 
    public Location PreviousLocation { get; set; } 
    [ForeignKey("LocationId")] 
    public Location NextLocation { get; set; } 
} 

しかしAdd-Migrationのコマンドを実行しているとき、それは私にエラーを与えた:そこエンティティ型のプロパティの同じセットを指している「場所」で複数のナビゲーションがある - ForeignKeyAttributeを使用して「LocationId」。

希望の動作を達成する方法の例を誰かに見せてもらえますか?

+1

PreviousLocationとNextLocationの両方に同じ外部キー名を指定しました。私は、ForeignKeyの名前は** PreviousLocationId **と** NextLocationId **であるべきだと思います – Natiq

答えて

0

これを試してください。これにより、再帰的または階層的な参照が可能になります。

public class Location 
{ 
    public int LocationId { get; set; } 

    public int NextLocationId { get; set; } 
    public int PreviousLocationId { get; set; } 

    [ForeignKey("PreviousLocationId")] 
    public Location PreviousLocation { get; set; } 
    [ForeignKey("NextLocationId")] 
    public Location NextLocation { get; set; } 
} 
関連する問題