ジェネリックで.NETエンタープライズライブラリのExecuteSprocAccessorメソッドを使用して、1つのクラスを使用してデータベース上のすべてのCRUDを処理しようとしています。私のデータ層では、私はこのような何かしようとしていた:ジェネリックでエンタープライズライブラリのExecuteSprocAccessorメソッドを使用する
「T」次の条件を満たす必要があります。しかし
public static class CRUDDatabase { private static Database db = DatabaseFactory.CreateDatabase("ITS"); public static T SelectSingle<T>(string sprocName, int id) { return db.ExecuteSprocAccessor<T>(sprocName, id).First(); } }
を、私は述べてSelectSingle()メソッドで戻りライン上でビルドエラーを取得します ジェネリック 型またはメソッド'Microsoft.Practices.EnterpriseLibrary.Data.DatabaseExtensions.ExecuteSprocAccessor(Microsoft.Practices.EnterpriseLibrary.Data)のパラメータ' TResult 'として使用するには、パブリックパラメータなし コンストラクタを使用する非抽象型にする必要があります。 .Database、 文字列、paramsオブジェクト[]) '
SelectSingle()メソッドの背後にある考え方は、ストアドプロシージャ名とデータベースから必要なオブジェクトのレコードIDを渡すことです。最終的には、SelectAll()、Update()、Delete()などがあります。これらのメソッドのパラメータは異なりますが、達成しようとしていることのアイデアが得られます。
このエラーを読んだ後、私はこれが不可能かもしれないと考え始めていますが、これがうまくいくかどうかは誰にでも分かりますか?また、データベースの私のフィールドは、私のクラスのフィールドと1:1でマッチするので、マッパーを指定していないのです。
おかげ
を、。。。 – ryanulit