Entity Framework Database First を使用していますが、Code First パラダイムから次の動作を再現したいと考えています。
Entity Framework Code First では、次の行に沿って何かを行うことができます。
public class Thing
{
public int ID { get; set; }
ICollection<Stuff> Stuffs { get; set; }
}
public class Stuff
{
public int ID { get; set; }
ICollection<Thing> Things { get; set; }
}
データベースは、多対多の関係を表す連想テーブルを生成します。
従来のデータベースで Database First を使用しています。エンティティを取り込んだところ、2 つのテーブル間の多対多の関係を表す連想テーブルが含まれていました。
連想テーブルはエンティティとして含まれているため、ナビゲーション プロパティは次のようになります。
public class Thing
{
public int ID { get; set; }
public ICollection<ThingStuff> ThingStuffs { get; set; }
}
public class ThingStuff
{
public int ThingID { get; set; }
public int StuffID { get; set; }
ICollection<Thing> Things { get; set; }
ICollection<Stuff> Stuffs { get; set; }
}
public class Stuff
{
public int ID { get; set; }
public ICollection<ThingStuff> ThingStuffs { get; set; }
}
ナビゲートするには、次のことを行う必要があります。
var stuff = Thing.ThingStuffs.Select(ts => ts.Stuff);
それ以外の:
var stuff = Thing.Stuffs;
質問は次のとおりです。
アソシエーション (ThingStuff) を表すエンティティを削除し、EntityFramework に既存のテーブルについて通知して、多対多のナビゲーション プロパティを作成する方法はありますか?