在LINQ to SQL INSERT中返回@@ RowCount

时间:2010-08-27 13:38:03

标签: sql linq tsql linq-to-sql stored-procedures

我正在将一些遗留代码迁移到LINQ to SQL,而我在使用以下存储过程时遇到了一些困难。

BEGIN
    INSERT INTO tblCMOEncounterHeader (
        submitter_organization_id, 
        submission_date, 
        begin_posting_date,
        end_posting_date, 
        number_of_records_transmitted) 
    VALUES (
        @submitter_organization_id,
        @submission_date,
        @begin_posting_date,
        @end_posting_date,
        @number_of_records_transmitted)

    RETURN @@ROWCOUNT
END

具体而言,@@ROWCOUNTINSERT合作时会返回什么?我如何在LINQ中完成同样的事情?

2 个答案:

答案 0 :(得分:1)

@@ROWCOUNT 
  

返回受最后一个语句影响的行数

MSDN

在你的情况下,我会一直返回1,或者在违反约束的情况下引发错误等。

你的LINQ to SQL代码绝对应该return (numsRowsAffected > 0);,即一个布尔值或类似的东西

答案 1 :(得分:1)

由于你只插入一行,它应该返回1.(如果你使用INSERT INTO ... SELECT FROM ...插入多行,它会更高)

在LINQ中,将存储过程从服务器资源管理器拖到LINQ图表(就像对表格所做的那样)。它将在DataContext上为strored proc创建一个方法。 (您可能必须从上下文菜单中打开“方法”窗格)