将此Sql表达式作为输入参数:(假设无法修改此输入参数的生成方式)
Db.From<Contact>().Where(C => C.Email != null).Or(C => C.Reference != null);
该方法需要附加另一个条件,例如
exp.And(C.UserId == Session.UserId);
但是,无论现有条件如何,UserId条件都必须为true。但是因为原始的Sql Expression使用了&#34; Or&#34;不强制执行UserId条件。
所以最终的Sql看起来应该是这样的:
SELECT * FROM Contact WHERE (Email IS NOT NULL OR Reference IS NOT NULL) AND UserId == 12
目前生成的Sql看起来像:
SELECT * FROM Contact WHERE Email IS NOT NULL OR Reference IS NOT NULL AND UserId == 12
任何人都有任何想法?
编辑: 到目前为止,唯一有效的方法是在原始Sql表达式的Where子句之前和之后将WhereExpression hack to add()。希望有更好的方式。
答案 0 :(得分:0)
.Where(C => C.UserId == Session.UserId)