0

C# 3.5 から VS 2008 および subsonic 2.2 を使用。たとえば、渡されたパラメーターがゼロより大きいかどうかに応じて、本質的に「IF」が中間にある亜音速クエリを作成できるかどうかは誰でも知っています。

たとえば、A と B の 2 つのパラメーターが渡される delete メソッド。

(疑似コード)のようなものが欲しい

DELETE from Products
Where productId = A
if(B > 0)
{
AND ProductAttributeId = B
}

明らかに、そこに実際の 'IF' 句は必要ありませんが、それが私が subsonic でやろうとしていることの本質です。パラメータが存在するかどうかに応じて、2つの異なるクエリを使用できることはわかっていますが、よりクリーンな方法があるかどうか疑問に思っていました。

ありがとう。

4

1 に答える 1

0

それが私が通常行う方法です。2 つのクエリではなくSqlQuery、オプションで制約を追加した 1 つのクエリです。

SqlSquery q = DAL.DB.Delete()
    .From<DAL.Product()
    .Where(DAL.Product.ProductIdColumn).IsEqualTo(A);
if (B > 0)
{
    q.And(DAL.Product.ProductAttributeIdColumn).IsEqualTo(B);
}
q.Execute();

タイプミスがある可能性があります。現在、これをテストできません。

于 2011-03-31T16:14:48.303 に答える