سؤال

أقوم ببناء sqlquery لدعم شاشة الاستعلام المخصصة.

أريد شيئا من هذا القبيل:

SqlQuery q = new Select().From<VwInstitutes>();
if (!string.IsNullOrEmpty(username))
{
    q.Where(VwInstitutes.Columns.AssignedUser).IsEqualTo(username); 
}

if (!string.IsNullOrEmpty(stage))
{
    q.Where(VwInstitutes.Columns.Stage).IsEqualTo(stage); 
}

مشكلتي هي-تصادم متعددة أين () لا يبدو أنه يعمل-هل هذا صحيح؟

الآن أنا أكتب هذا ، لكنه قبيح للغاية.

if (!string.IsNullOrEmpty(username)) 
{ 
    if (q.HasWhere) q.And(VwInstitutes.Columns.AssignedUser).IsEqualTo(username); 
    else q.Where(VwInstitutes.Columns.AssignedUser).IsEqualTo(username); 
}

if (!string.IsNullOrEmpty(stage))
{
    if (q.HasWhere) q.And(VwInstitutes.Columns.Stage).IsEqualTo(stage); 
    else q.Where(VwInstitutes.Columns.Stage).IsEqualTo(stage);
}

من فضلك قل لي أن هناك تعبيرًا أفضل لهذا السيناريو. شكرًا!

هل كانت مفيدة؟

المحلول

ابدأ استفسارك مع مكان يقييمه دائمًا إلى True.

new Select().From().Where("1").IsEqualTo("1");

ثم بناء بقية الاستعلام مع Q. و. نرى هذا الموضوع كذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top