我有一个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; }
我的经验法则是编码 – 如果你不能像一个句子一样读它,那么它需要修复.