Ind*_*dhi 13 c# linq linq-to-sql
我有一个查询,它应返回TRUE或FALSE.
var query = from c in db.Emp
from d in db.EmpDetails
where c.ID == d.ID && c.FirstName == "A" && c.LastName == "D"
// It should return TRUE when this above statement matches all these conditions
Run Code Online (Sandbox Code Playgroud)
我想将此查询结果附加到属性(字符串数据类型)
this.result = Conert.ToBoolean(query);
Run Code Online (Sandbox Code Playgroud)
如何在LINQ中实现这一点?
编辑:
EmpMapper类
public class EmpMapper
{
EmpEntities db;
// ID column already exists in the DB
private int ID;
// I am creating this property to add it from the UI side, depending on the certain conditions in the query. That is why I created a separate class to map the existing ID from the DB
bool result;
public EmpMapper(int ID, bool result)
{
this.db = new EmpEntites();
this.ID = ID;
var query = from c in db.Emp
from d in db.EmpDetails
where c.ID == d.ID && c.FirstName == "A" && c.LastName == "D"
// It should return TRUE when this above statement matches all these conditions
this.result = Convert.ToBoolean(query);
}
public int ID
{
get{return this.ID;}
set{this.ID = value;}
}
public bool result
{
get{return this.result;}
set{this.result = value;}
}
}
Run Code Online (Sandbox Code Playgroud)
MainViewModel类
List<EmpMapper> empMapCol = new List<EmpMapper>();
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var emp_query = from c in db.Emp
orderby c.ID
select a;
List<Emp> empCol = emp_query.ToList();
foreach(Emp item in empCol)
{
this.empMapCol.Add(new EmpMapper(item.ID, item.result));
}
datagrid1.ItemsSource = empMapCol;
}
}
Run Code Online (Sandbox Code Playgroud)
Sat*_*pal 28
试试这个,
var query = (from c in db.Emp
from d in db.EmpDetails
where c.ID == d.ID && c.FirstName == "A" && c.LastName == "D"
select c
).Any();
this.result = query; //no need to convert to boolean its already bool value
Run Code Online (Sandbox Code Playgroud)
您可以使用.Any() 或.Count()。Any()的性能更好。(检查这个SO问题看看为什么)
。任何()
var query = from c in db.Emp
from d in db.EmpDetails
where c.ID == d.ID && c.FirstName == "A" && c.LastName == "D"
// It should return TRUE when this above statement matches all these conditions
this.result = query.Any().ToString()
Run Code Online (Sandbox Code Playgroud)
。数数()
var query = from c in db.Emp
from d in db.EmpDetails
where c.ID == d.ID && c.FirstName == "A" && c.LastName == "D"
// It should return TRUE when this above statement matches all these conditions
this.result = (query.Count() > 0).ToString()
Run Code Online (Sandbox Code Playgroud)
如果我对您的理解正确,那么您希望获取true查询结果之一是否符合所有条件。在这种情况下,请尝试以下操作:
var found =
(from c in db.Emp
from d in db.EmpDetails
where c.ID == y.ID && c.FirstName == "A" && c.LastName == "D"
select c).Any();
this.result = found.ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50391 次 |
| 最近记录: |