使用Ormlite对查询条件进行分组

时间:2016-08-15 02:38:23

标签: ormlite-servicestack

我试图生成看起来像这样的SQL查询:

function Person()
{
    var o=new Object();
    o.age=30;
    return o;
}
var p1=Person();
var p2=new Person();
console.log(typeof(p1)==typeof(p2))

这就是我能做的:

SELECT * FROM Contact Where UserId = @UserId AND (FirstName = 'John' OR Surname = 'Smith')

还要考虑Surname条件是可选的,这意味着使用原始字符串我们可以构建字符串。有没有办法不必使用原始的SQL字符串?

可能的解决方案:

Db.From<Contact>().Where(c => c.UserId == userId)
.And("(FirstName = {0} OR Surname = {1})"), firstName, surname);

有谁知道更好的解决方案?

1 个答案:

答案 0 :(得分:1)

var ev = Db.From<Contact>().Where(c => c.UserId == userId);
if (someCase)
    ev.And(c => c.FirstName == firstName || c.Surname == surname);

或者如果没有someCase

var ev = Db.From<Contact>().Where(c => c.UserId == userId && (c.FirstName == firstName || c.Surname == surname));