質問

C#3.5からVS 2008とサブソニン2.2を使用する。 渡されたパラメータがゼロより大きかったかどうかに応じて、本質的に「IF」を持つサブシステクエリを作成することが可能かどうかを知っています。 たとえば、2つの渡されたパラメータを持つDeleteメソッド - AとB。

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

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

明らかにそれはそこに実際の「if」句を必要とするでしょうが、それが私がサブソニーとしようとしていることの本質です。パラメータがそこにあるかどうかに応じて2つの異なるクエリを持つことができるだけですが、私はそれをやることのある方法があるかどうか疑問に思いました。

ありがとう。

役に立ちましたか?

解決

That's how I usually do it - it's not two queries, but one SqlQuery with optionally added constraints:

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();

There may be a typo, I can't test this right now.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top