我正在将一些遗留代码迁移到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
具体而言,@@ROWCOUNT
与INSERT
合作时会返回什么?我如何在LINQ中完成同样的事情?
答案 0 :(得分:1)
@@ROWCOUNT
返回受最后一个语句影响的行数
在你的情况下,我会一直返回1
,或者在违反约束的情况下引发错误等。
你的LINQ to SQL代码绝对应该return (numsRowsAffected > 0);
,即一个布尔值或类似的东西
答案 1 :(得分:1)
由于你只插入一行,它应该返回1.(如果你使用INSERT INTO ... SELECT FROM ...插入多行,它会更高)
在LINQ中,将存储过程从服务器资源管理器拖到LINQ图表(就像对表格所做的那样)。它将在DataContext上为strored proc创建一个方法。 (您可能必须从上下文菜单中打开“方法”窗格)