13

最初にコードと注釈を使用して、エンティティ フレームワーク 6 で一方向の多対多の関連付けを作成することは可能ですか? 例:

class Currency
{
    public int id { get; set; }
}

class Country
{
    public int id { get; set; }

    // How i can annotate this property to say EF that it is many-to-many
    // and it should create mapping table?
    // I don't need navigation property to Country in Currency class!
    public virtual IList<Currency> currencies { get; set; }
}

Java + JPA アノテーションでは、次の方法で必要なものを実装できます。

@OneToMany
@JoinTable(name = "MAPPING_TABLE", joinColumns = {
    @JoinColumn(name = "THIS_ID", referencedColumnName = "ID")
}, inverseJoinColumns = {
    @JoinColumn(name = "OTHER_ID", referencedColumnName = "ID")
})

それで、EFには同等の機能がありますか?

4

3 に答える 3

0

リレーションを EF コードの最初のエンティティから分離する方法を学びたいと思います。この質問についてここでトピックを開始しました。リレーション オブジェクトをエンティティから分離したいので、部分クラスを使用しました。私の質問では、部分クラスをクラス birary で分離する方法を学びたいと思っています。しかし、できませんでした。

私は NHibernate を使用していましたが、ここで XML マッピングを使用してリレーションを作成していました。Java プラットフォームでも同じです。しかし、Entity Framework はまだ準備ができていないと思います。

于 2013-06-06T05:57:10.797 に答える
0

EF 6 では、最初にコードでこれを非常に簡単に行うことができます。

    public class Country
{
   public int ID {get;set;}

   public virtual ICollection<Currency> Currencys {get;set;}//don't worry about the name,     pluralisation etc


}

public class Currency
{

   public int ID {get;set;}

   public virtual ICollection<Country> Countrys {get;set;}//same as above - 

}

コンパイルして実行すれば、バックグラウンドでマジック ジョイン テーブルを実行できます。命名規則が気になるかどうかによって異なります。個人的には、最初にコードを実行する場合は、コード内ですべて実行する必要があると思います。注釈を好む人もいれば、流暢な API を好む人もいます。好きな方を使用してください。

于 2014-04-14T12:24:30.880 に答える