首页 > 解决方案 > 如何将 SQL Server 更改跟踪与实体框架一起使用

问题描述

SQL Server 有一个非常有用的功能,称为更改跟踪,它使客户端能够跟踪表中数据的更新和插入。

我想知道,EF 是否支持使用这些使用CHANGETABLE()函数的查询?否则你知道任何第三方库吗?或者使用EF实现它的任何技巧?

标签: sql-serverentity-frameworkchange-tracking

解决方案


您可能会首先在数据库中创建 UDF 以封装 CHANGETABLE 访问。就像是:

create or alter function GetChanges_Employee_Insert(@last_sync_version bigint)
returns table
as
return
SELECT e.*
FROM CHANGETABLE (CHANGES HumanResources.Employee, @last_sync_version) AS c  
    LEFT OUTER JOIN HumanResources.Employee AS e  
        ON e.[BusinessEntityID] = c.[BusinessEntityID] 
where c.SYS_CHANGE_OPERATION = 'I'

这将创建一个 Employee 形状的结果,您可以将其加载到现有的 Employee 实体中。


推荐阅读