0

1つの商用ORMを使用する小さなプロジェクトでIoCを使用しようとしています。

私のエンティティ「プロジェクト」に「ユーザー」エンティティのコレクションがあります。メソッドにインターフェイスを渡すと、オブジェクトを'User'エンティティのコレクションに追加できません。これは、ORMEntityCollectionクラスによって表されているためです。

例:

//'this' is a partial class to the modeled Entity<int>
public void AddToCollection(IUser user)
{
    this.Users.Add(user); //this.Users is type of EntityCollection.
}

ここには2つの可能性があり、どちらがベストプラクティスかわかりません。

  1. EntityCollectionをIEnumerableに変更します(これは不可能です)
  2. IUserをユーザーにキャストする

または、IoCで完全に間違った方向に進んでいる可能性がありますが、ここでのベストプラクティスは何ですか?

4

2 に答える 2

0

私の場合、エンティティにインターフェイスを使用するのはよくありません。代わりに基本クラスを優先します。宜しくお願いします

于 2012-07-21T15:58:24.237 に答える
0

キャスト。例えば:

//'this' is a partial class to the modeled Entity<int> 
public void AddToCollection(IUser user) 
{   
     if ( user is User )  
         this.Users.Add( (User)user ); 
     else
         throw new ArgumentException();
} 
于 2012-07-21T16:00:48.000 に答える