我使用实体框架6.1和Code First方法。 当我使用DbContext.SaveChanges()作为结果时,我可以得到
写入底层数据库的对象数。
但是可以获得高级统计信息:删除的行数,编辑的行数,添加的行数?
我的超级目标是获得每个实体的静态。
也许在实际调用SaveChanges()之前..
答案 0 :(得分:9)
var modifiedCount = dbContext.ChangeTracker.Entries().Where(x => x.State == System.Data.EntityState.Modified).Count()
以上代码行可用于获取修改后的条目,同样您也可以获取已删除的条目并添加...
但是在调用SaveChanges()之前必须执行这些代码行。
答案 1 :(得分:1)
您可以使用db.GetChangeSet()
。这将包含三个列表:
var deletes = db.GetChangeSet().Deletes;
var updates = db.GetChangeSet().Updates;
var inserts = db.GetChangeSet().Inserts;
var all = db.GetChangeSet().All;
可以在将更改提交到数据库之前完成此操作。
考虑使用名为country的表
db.Tblcountries.InsertOnSubmit(
new Tblcountry(){FkRegionId=1,CountryCode="US",Name="USA"});
var result= db.GetChangeSet().All.ToList();
All
列表和Insert
列表将包含此列表:
PkCountryId Name CountryCode FkRegionId
0 USA US 1
参考:
答案 2 :(得分:-1)