データベースレイヤーを作成して、スワップして、LINQなどを使用するようにします。nHibernateはどんな種類の戻り値の型を使いますか?リスト<T>?
私の抽象クラス(またはインターフェイス)では、アイテムのリスト/コレクションを返す結果にどのような戻り値の型を使用する必要がありますか?
nHibernateはListを返しますか?
データベースレイヤーを作成して、スワップして、LINQなどを使用するようにします。nHibernateはどんな種類の戻り値の型を使いますか?リスト<T>?
私の抽象クラス(またはインターフェイス)では、アイテムのリスト/コレクションを返す結果にどのような戻り値の型を使用する必要がありますか?
nHibernateはListを返しますか?
IList<T>
を使用してください。 NHibernateのは、常にそれのコレクションからIList<T>
を返し、ドキュメントは言う:コレクション・マッピングの
名前を は、Javaと.NETの間 差異が を示している1つの明白な場所です。 Javaのコレクションライブラリには より多くのオプションがあります。 System.Collectionよりも多くのオプションがあります。
* The <list> maps directly to an IList. * The <map> maps directly to an IDictionary. * The <bag> maps to an IList. A <bag> does not completely comply with
追加() メソッドは 正しいインデックスを返すことが保証されないためのIListインターフェイス。オブジェクトを に追加すると、 IListを初期化せずにaを追加できます。 IListをAPI のコンシューマーから隠すか、それとも十分に文書化するかを確認してください。 * Iesi.Collections.ISetへのマップ。そのインターフェイス は、NHibernateと共に配布されるIesi.Collections アセンブリの一部です。
それだけでなく、抽象概念ではなくインターフェイスに対してコードを作成するのが一般的には良い方法です。