use*_*948 0 c# linq linq-to-entities entity-framework linq-to-sql
我有这两个代码,我必须知道哪个更好用.我在想这是一样的.如果我没有弄错,第一个只有一次调用数据库,但是,我不知道检查repo!= null是否正确.
(1)
var repo = Repository
.Query()
.Where(ur => ur.CustomerId == customerId)
.SingleOrDefault();
if (repo != null)
{
// Update repo
repo.Name = "name here";
}
else
{
// code
}
Run Code Online (Sandbox Code Playgroud)
(2)
var repo = Repository
.Query()
.Any(ur => ur.CustomerId == customerId);
if (repo)
{
var result = Repository
.Query()
.Where(ur => ur.CustomerId == customerId)
.Single();
result.Name = "name here";
}
else
{
// code
}
Run Code Online (Sandbox Code Playgroud)
第二个选项找到一个元素两次.这里
Repository
.Query()
.Any(ur => ur.CustomerId == customerId)
Run Code Online (Sandbox Code Playgroud)
和这里
Repository
.Query()
.Where(ur => ur.CustomerId == customerId)
.Single()
Run Code Online (Sandbox Code Playgroud)
第一个选项只发现一次.这是选择第一个选项的原因.而且,您可以使此代码更好:
var repo = Repository
.Query()
.Where(ur => ur.CustomerId == customerId)
.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
写吧
var repo = Repository
.Query()
.SingleOrDefault(ur => ur.CustomerId == customerId);
Run Code Online (Sandbox Code Playgroud)
以及对未来的建议:Any()
当你想检查查询中有任何元素这一事实时使用,但你不需要这个元素.
归档时间: |
|
查看次数: |
70 次 |
最近记录: |