所以假设我正在使用linq查询检索一些数据:
DataContext db = new DataContext
using(db)
{
var test = from t in db.table1
where t.col1 == Convert.ToInt32(HiddenField1.Value)
select new
{
t.col2,
t.col3
};
}
然后,我想检查条件是否不正确,如:
if (col3 != something){ }
我怎样才能做到这一点?
由于
答案 0 :(得分:2)
你可能想要这样的东西:
DataContext db = new DataContext
using(db)
{
var test = from t in db.table1
where t.col1 == Convert.ToInt32(HiddenField1.Value)
select new
{
t.col2,
CandyType = (t.col3 == "fudge") ? "It's Fudge" : "It's some other candy!"
};
尽管使用实体框架,您可能会遇到框架无法将条件语句转换为SQL的问题。我相信它完全取决于你在条件语句中执行的操作,但是自从触及EF以来已经有一段时间了。如果事实证明它无法将条件语句转换为SQL,则必须通过调用.ToList()或.ToArray()来实现结果,然后执行条件。
答案 1 :(得分:0)
如果您的检查应该在sql中完成,那么Dave Markle的答案必须适合您。 如果要对某些返回的实体应用此检查,它应该看起来像这样:
通过foreach
获取您的对象:
foreach(var o in test)
{
if(o.col3!= something)
{
...
}
}
或使用linq对象:
test.ToList().Where(o=>o.col3!=something);