我有一个C#代码,如下所示:
foreach (var entry in this.ChangeTracker.Entries()
.Where(e => e.Entity is IAuditableTable &&
e.State == EntityState.Added))
{
IAuditableTable e = (IAuditableTable)entry.Entity;
e.ModifiedDate = DateTime.Now;
}
Run Code Online (Sandbox Code Playgroud)
这似乎就像foreach和LINQ的结合.sometone告诉我,我可以删除foreach并将其合并到一个LINQ语句中
dav*_*v_i 34
我建议不要这样做.保持一切尽可能可读:
var auditableTables = this.ChangeTracker.Entries()
.Where(e => e.State == EntityState.Added)
.Select(e => e.Entity)
.OfType<IAuditableTable>();
foreach (var table in auditableTables)
{
table.ModifiedDate = DateTime.Now;
}
Run Code Online (Sandbox Code Playgroud)
我对编码的经验法则 - 如果你不能像句子一样阅读它,那么它需要修复.
你能做的最好的是
foreach (var entry in from x in this.ChangeTracker.Entries()
where x.Entity is IAuditableTable &&
x.State == EntityState.Added
select (IAuditableTable)x.Entity)
{
entry.ModifiedDate = DateTime.Now;
}
Run Code Online (Sandbox Code Playgroud)
更新没有查询语法.
| 归档时间: |
|
| 查看次数: |
11634 次 |
| 最近记录: |