0

。私はすでにドメインクラスにgeneric ObservableCollectionを使用しており、それを変更するつもりはありません。EFを使用してObservableCollectionを使用するようにドメインクラスを構成する方法は?私はEntity Frameworkのコードファーストモデリング技術を使用して開始しているとFluentAPI</strong><strong>DataAnnotation</strong>と<strong>を使用して、多くの(1-N)の関係に1を実現するための多くの例を見てきましたが、ドメインクラスをモデル化しながら、すべての例は<code>ICollection</code>を使用している

現在FluentAPIを使用して設定を指定して、私は次のエラーを取得しています:

HasRequired(t => t.App) 
    .WithMany(t => t.EndPoints) // error here 
    .HasForeignKey(t => t.App); 

Cannot implicitly convert Type 'EndPoints' to 'ICollection'.

注:エンドポイントクラスはのObservableCollectionを使用して実装されています。

私の質問はどのように動作させるのですか?これはそれを行うための例である

public class ModelBase 
{ 
    public Guid Id { get; set; } 
    public string Name { get; set; } 
} 

public class RuleApp : ModelBase 
{   
    public EndPoints EndPoints { get; set; } 
} 

public class EndPoint : ModelBase 
{ 
    public RuleApp RuleApp { get; set; } 
} 

public class EndPoints : GenericObservableCollection<EndPoint> { } 

public class GenericObservableCollection<T> : ObservableCollection<T> 
{ 
    // other common stuff handling 
} 
+0

やりたいエンドポイントのすべてのデータをfeatchする必要がありますEndPoinsクラスのconstractorで は、プロパティを使用してinstedあなたはクラスでエンドポイントを使用する理由私は定義 –

+0

、私たちを表示してください? RuleApp EndpointsPropertyを次のように変更してください:public virtual ObservableCollection EndPoints –

+0

を追加したエンティティ定義 –

答えて

0

:後

は私のエンティティ定義である

public class ModelBase 
{ 
    public Guid Id { get; set; } 
    public string Name { get; set; } 
} 

public class RuleApp : ModelBase 
{  
//This for create RelationShip 
    public virtual ICollection<EndPoint> EndPoints { get; set; } 

    [NotMapped] 
    Public EndPoints GenericEndPoints { get; set; } 

    public void TransferToGenric() 
    { 
      GenericEndPoints =new EndPoints(EndPoints) 
    } 

} 

public class EndPoint : ModelBase 
{ 
    public RuleApp RuleApp { get; set; } 
} 

public class EndPoints : GenericObservableCollection<EndPoint> { } 

public class GenericObservableCollection<T> : ObservableCollection<T> 
{ 
    // other common stuff handling 
} 

あなたのcalssのすべてのプロパティマップされたプロパティEFとしてGenericObservableCollectionを使用するので、私が作成した場合エンドポイントを使用するためのプロパティとそれ以降はGenericObserveableCollectionに変換します。あなたは

+0

私はこのアプローチについて知っていますが、これは便利な方法ではありません。私は自分のドメインクラスに影響を与えない方法を探しています。 –

+0

ドメインを変更したくないのはなぜですか? –

+0

主に私のモデル/ドメインクラスがエンタープライズWPFアプリケーションにバインドされているため、EFのためにそれらを変更することは決して良い考えではありません。そして、私は別のO/Rマッパーのために行く必要があるかもしれない私の問題にいくつかの解決策がなければならないと思う。 –

関連する問題

 関連する問題