使用linq,我想检查数据库中是否存在行。我只需要一个真正的\ false返回,没有数据。 我不能使用ExecuteQuery方法,因为我没有实体(我甚至不需要它) 我想做这样的事情:
string command = "select * from myTable where X=Y"
var result = db.ExecuteCommand(command);
(db是我的DataContext) 并期望结果包含受影响的行数。如果不同于-1则意味着我正在寻找的记录存在。但我总是得到-1。我想ExecuteCommand方法应该只用于运行插入,更新或删除。
如何使用linq
运行此简单检查答案 0 :(得分:5)
您可以使用Any()
运算符。如果调用它的IEnumerable
或IQueryable
至少有一个项目(即它有任何项目),它将返回true。
答案 1 :(得分:2)
如果db
是您的数据上下文,您应该这样做:
bool rowExists = dc.GetTable<myTable>().Any(row => row.X == row.Y);
通常,使用LINQ to SQL(和实体框架),您很少想直接编写SQL代码。
答案 2 :(得分:0)
替换
select *
与
select count(*)
答案 3 :(得分:0)
你可能最好不要运行SELECT COUNT(*) FROM myTable WHERE X=Y
并检查返回的单个记录是否等于零