Asp.net mvc 如何在另一个分部类中重写DbContext方法以避免context.cs中自动生成的代码丢失
我正在尝试从DbContext重写SaveChanges()方法以进行审核。在我的应用程序中,当我在继承DbContext的某些部分类MyEntities下重写它时,它可以正常工作,没有任何问题。此外,MyEntities类包含连接各种数据库表的少数数据库集 但一旦实体框架被更新,Context.cs文件就会在自动生成时得到更新,因此我丢失了代码 有没有办法将这个overidden函数保存在同一名称空间内外的其他类文件中?我试图创建另一个类文件,并保留自定义代码以覆盖SaveChanges()并在DbSet上执行操作,但没有调用此方法,并且执行了base SaveChanges() 我很感激任何克服这一问题的建议。如果需要什么,请告诉我 谢谢,Asp.net mvc 如何在另一个分部类中重写DbContext方法以避免context.cs中自动生成的代码丢失,asp.net-mvc,entity-framework,dbcontext,savechanges,auditing,Asp.net Mvc,Entity Framework,Dbcontext,Savechanges,Auditing,我正在尝试从DbContext重写SaveChanges()方法以进行审核。在我的应用程序中,当我在继承DbContext的某些部分类MyEntities下重写它时,它可以正常工作,没有任何问题。此外,MyEntities类包含连接各种数据库表的少数数据库集 但一旦实体框架被更新,Context.cs文件就会在自动生成时得到更新,因此我丢失了代码 有没有办法将这个overidden函数保存在同一名称空间内外的其他类文件中?我试图创建另一个类文件,并保留自定义代码以覆盖SaveChanges()并
Pankaj你显然在问题标题中提到了部分类,为什么不使用它?创建一个单独的文件,在其中定义dbcontext的分部类,然后可以安全地重写那里的
SaveChanges
方法。@KingKing:我创建了saperate文件,实现了分部类,并且重写了SaveChanges()。但当我像newClass:DbContext一样继承时,我没有访问DbSet的权限,这是为了保存而添加object所必需的。当我像newClass:MyEntities一样继承时,我没有收到任何编译错误或警告,生成成功但仍然被重写的方法没有被调用,应用程序只执行基方法。那么,分部类不应该有任何继承指令。这已经在自动生成的类中完成。删除:DbContext
就可以了。是的。我会做出改变。谢谢国王。:)它起作用了。。现在我遇到了另一个问题。对于ObjectStateEntry,我无法检索MODIFIED的原始值,因为它们仍然仅检索CurrentValue。有人有什么解决方案/建议吗?