C# 实体框架变更跟踪

C# 实体框架变更跟踪,c#,.net,asp.net,entity-framework,C#,.net,Asp.net,Entity Framework,是否有任何方法可以跟踪ASP.NET应用程序上下文之间的EF实体更改 自我跟踪实体对我来说不太好,因为它主要是为WCF设计的。我发现的所有跟踪POCO更改的方法都是基于共享上下文的。不,您必须自己跟踪更改,或者必须使用STE并在回发之间将它们存储在ViewState/Session中 编辑:如果使用简单实体,可以使用一些方法跟踪更改,但首先必须从数据库加载实体(=附加数据库查询)。然后可以使用ObjectContext实例的ApplyCurrentValues方法。此方法不适用于我建议使用SQL

是否有任何方法可以跟踪ASP.NET应用程序上下文之间的EF实体更改


自我跟踪实体对我来说不太好,因为它主要是为WCF设计的。我发现的所有跟踪POCO更改的方法都是基于共享上下文的。

不,您必须自己跟踪更改,或者必须使用STE并在回发之间将它们存储在ViewState/Session中


编辑:如果使用简单实体,可以使用一些方法跟踪更改,但首先必须从数据库加载实体(=附加数据库查询)。然后可以使用ObjectContext实例的ApplyCurrentValues方法。此方法不适用于

我建议使用SQL Server()中内置的更改跟踪功能。此框架允许您识别给定行是否已更改,甚至列是否已更改。你确实需要设法解决从何时开始改变的问题。SQL server中的更改跟踪是通过将表和所需的“自何时起”修订号传递到ChangeTable函数()中来完成的。您可以使用此函数的结果来确定上次更改表的时间以及表的主键。据我所知,您只能将其用于定义了主键的表。然后,您可以创建一个表值函数或一个视图来返回已更改的记录。使用实体框架,这两种方法都很容易使用

(映射到表值函数)指向如何使用实体中的表值函数的链接。