Geo*_*ton 10 .net c# linq linq-to-sql
我正在寻找一个简单的解决方案来替换我的标准化垃圾方式,在尝试检索数据之前验证记录是否存在.目前,无论何时调用我的一个方法,我都会做一些事情......
private Record DoSomething(int id)
{
if(data.Records.Count(q=>q.Id==id) > 0)
{
return data.Records.First(q=>q.Id==id);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
...我总是检查记录的数量,以确定记录的存在.必须有一种更"优雅"的方式来做这件事,而不必两次调用数据库.有办法吗?
jas*_*son 16
有很多干净的方法来处理这个问题.如果你想要第一个Record对应id你可以说:
Record record = data.Records.FirstOrDefault(r => r.Id == id);
if(record != null) {
// record exists
}
else {
// record does not exist
}
Run Code Online (Sandbox Code Playgroud)
如果您只想知道是否Record存在:
return data.Records.Any(r => r.Id == id); // true if exists
Run Code Online (Sandbox Code Playgroud)
如果你想要计算Record存在多少这样的数量:
return data.Records.Count(r => r.Id == id);
Run Code Online (Sandbox Code Playgroud)
如果你想要一个IEnumerable<Record>所有这样的枚举()Record:
return data.Records.Where(r => r.Id == id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11812 次 |
| 最近记录: |