我有一个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;
- }
这似乎是foreach和LINQ的结合.有人可以告诉我,我可以删除foreach并将其组合成一个LINQ语句
解决方法
我建议不要这样做.保持一切尽可能可读:
- 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;
- }
我的经验法则是编码 – 如果你不能像一个句子一样读它,那么它需要修复.