2017-10-19 8 views
0

考えますアセンブリ?親エンティティはその子エンティティタイプについて知る必要があるので、親アセンブリは子アセンブリを参照する必要があり、逆もまた同様に循環参照を作成する必要があります。別々の関連するエンティティフレームワークモデルは、多くのrelantionshipこのtipical 1の

3つの質問は、私の心に来る:

  1. は、アセンブリ間の循環依存関係を作成せずにこれを達成するための任意の非ハック方法はありますか?
  2. 上記の場合、サポートされている唯一の方法は、特定のコンテキストのすべてのエンティティを同じアセンブリに格納することですか? (1つのデータベースに別のセットの関連していないテーブルがある場合、最初は同じデータベースに属しているのでしょうか?)
  3. データベース関連の場合は、エンティティは一緒に属していますか?私はこの仮定が特定のケースに依存するだろうと思うが、誰かが強い感情を持っている場合、この件に関するベストプラクティスに関するいくつかのアイデアを聞きたい。

私は実際にこの同じ概念に参照のうえ一つだけがthis oneなり、似たタイトルと、サイト内の他の質問がある知っているが、それはかなり時代遅れかもしれないと私は質問の両方を検索し、その唯一の非常に漠然と答えます。事前

答えて

1

おかげでアセンブリ間の循環依存関係を作成せずにこれを達成するための任意の非ハック方法はありますか?

assembly3:

public interface IParent 
{ 
    public int ID { get; set; } 
    public List<IChild> Children { get; set; } 
} 

public interface IChild 
{ 
    public int ID { get; set; } 
    public int ParentID { get; set; } 
    public IParent ParentEntity { get; set; } 
} 

はその後のそれぞれにインタフェースアセンブリを参照

これを行うための適切な方法は、各タイプの参照はをインターフェイスを定義する第三のアセンブリを使用することですアセンブリ。どのアセンブリでも親アセンブリと子アセンブリが一緒になると、3つのアセンブリすべてが参照されます。

これは簡単ではない可能性があります。それは、EFがあなたのためにそれをするのではなく、手動でより多くの型をリンクすることを意味するかもしれません(EFはインタフェースではなく具体的​​な型を使いたいので)。したがって、その時点で、それらの型を別々のアセンブリに入れることが問題になるかどうかを判断できます。

データベース関連の場合、ビジネス関連のものでなければならないと主張できますか?

もしそれらが同じデータベースから来て、あなたが示しているようにしっかりと結合されているなら、私は同じアセンブリにそれらを入れるのが妥当だと言います。いくつかのプロセスでは他のプロセスを使用していても、別のプロセスを使用していない場合は、オプションで別のタイプをロードすることができますが、詳細については詳細を知る必要があります(このフォーラムの範囲外です)。

+0

ありがとうございます。私は通常、データよりも行動に関連付けるので、最初はインターフェイスを考えなかったが、この文脈では、アイデアは正しい(あなたが示すEFの困難を克服する...)。このシナリオの具体的な例はありませんが、EFを読むときにEFをどのように処理するかについて無作為に考えていたためです。 –

関連する問題