SQL Server 2008 でストアド プロシージャを作成しました。これにより、テーブルに加えられた変更が得られます。このテーブルを C# で使用するために、Linq to SQL を使用しています。私のストアドプロシージャは
CREATE PROCEDURE dbo.getlog
-- Add the parameters for the stored procedure here
@p1 int = 0,
@p2 int = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
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');
END
GO
上記の手順は、SQL サーバーで正常に実行されます。ただし、C#でlinqを使用してこのステートメントを実行すると
mytestDataContext obj = new mytestDataContext();
var test=obj.ExecuteCommand("dbo.getlog");
foreach( var abc in test)
{}
このエラーが発生します
エラー 1 'int' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントは 'int' 型の変数を操作できません