私はLinq To SQL
を使用する必要がある新しいプロジェクトに取り組んでいます。ストアドプロシージャを実行するために使用できる汎用または再利用可能なLinq to SQL
クラスを作成するように求められました。再利用可能なLinqをストアドプロシージャのSQLに作成する
ADO.Net
で
:
SqlCommand cmd = new SqlCommand("myStoredProc", conn); // etc, etc
私は苦労していますLinq To SQL
のようなものを作成する方法もあります。私は.dbml
ファイルを作成し、それに私のストアドプロシージャを追加しました。その結果、私は以下のコードを使用して結果を返すことができます。
public List<myResultsStoreProc> GetData(string connectName)
{
MyDataContext db = new MyDataContext (GetConnectionString(connectName));
var query = db.myResultsStoreProc();
return query.ToList();
}
コードは動作しますが、彼らは私が実行するためにそれを伝えるものは何でも、ストアドプロシージャを返します一つの方法を作成したいです。私はオンラインで検索し、これについて同僚に話し、再利用可能なストアドプロシージャクラスを作成する方法を見つけることに失敗しました。
ストアドプロシージャを実行するために再利用可能なLinq to SQL
クラスを作成する方法はありますか?
編集:私は探しています何
次のような何かをする方法があるかどうかでしょうか?
public List<string> GetData(string connectName, string procedureName)
{
MyDataContext db = new MyDataContext (GetConnectionString(connectName));
var query = db.procedureName();
return query.ToList();
}
私はLinq To Sql
にMSDN docsを見直しており、これらはIEnumerable
でテーブルを示している。
IEnumerable<Customer> results = db.ExecuteQuery<Customer>(
@"select c1.custid as CustomerID, c2.custName as ContactName
from customer1 as c1, customer2 as c2
where c1.custid = c2.custid"
);
私は私が保存されたの文字列値で送ることができる非常に一般的な何か、を探しています私が実行したいproc。これが不可能な場合は、なぜこのようにすることができないのかに関する文書はありますか?私たちはLinq To Sql
あなたが.dbmlファイルでモデル化されていない可能性がありますストアドプロシージャを実行する必要がありますか?そして、あなたは.dbmlにマップされているエンティティを返そうとしていますか? – CodingGorilla
これらはほとんどの場合、.dbmlにマップされますが、そうでない場合があります。 – Taryn
これはLINQ to SQLを使用する方法ではありません。あなたはシステムに対して働いています。それが使用されることを意図しているように作業してください。 – usr