更改数据捕获和linq

时间:2013-06-24 10:20:38

标签: c# sql linq sql-server-2008 linq-to-sql

我是linq和cdc的新手。我试图使用c#和linq查看cdc日志文件更新。基本上我需要帮助的是如何使用c#和linq实现这个show update查询。

USE mytest;
GO
DECLARE @from_lsn binary(10), @to_lsn binary(10)
SET @from_lsn =
   sys.fn_cdc_get_min_lsn('dbo_User_Info')
SET @to_lsn   = sys.fn_cdc_get_max_lsn()
SELECT ID_number, Name, Age FROM cdc.fn_cdc_get_all_changes_dbo_User_Info
  (@from_lsn, @to_lsn, N'all');
GO

我可以很容易地看到使用此查询在sql server中对mytest表所做的所有更改,但是如何使用linq to sql实现它。我正在使用sql server 2008和visual studio 2012。

1 个答案:

答案 0 :(得分:2)

是否可以将表值函数映射到Linq中的实体?

如何:在LINQ中使用表值用户定义函数: http://msdn.microsoft.com/en-us/library/bb386954.aspx

CREATE FUNCTION dbo.GetUserHistory()
    RETURNS table AS
RETURN (

    SELECT ID_number, Name, Age FROM cdc.fn_cdc_get_all_changes_dbo_User_Info
    ((SELECT sys.fn_cdc_get_min_lsn('dbo_User_Info')), (SELECT sys.fn_cdc_get_max_lsn()),N'all')
)