Linq to sql 使用存储过程和Linq to SQL获取更新的行数

Linq to sql 使用存储过程和Linq to SQL获取更新的行数,linq-to-sql,stored-procedures,Linq To Sql,Stored Procedures,我有一个Linq到SQL数据上下文类,在这里我触发一个存储过程。我可以通过生成的代码跟踪到触发存储过程的位置。我检查System.Data.Linq.SqlClient.SqlProvider.executesult,可以看到有一个名为value的私有成员,其中包含更新的行数。似乎没有任何公共访问器,而且结果似乎也不会返回到数据上下文。是否有其他方法访问此值,或者我必须从每个存储过程返回@@RowCount?恶心?嗯。无可否认,这是一个最好的猜测,因为我没有在存储过程中尝试过,但这就是您要寻找的

我有一个Linq到SQL数据上下文类,在这里我触发一个存储过程。我可以通过生成的代码跟踪到触发存储过程的位置。我检查System.Data.Linq.SqlClient.SqlProvider.executesult,可以看到有一个名为value的私有成员,其中包含更新的行数。似乎没有任何公共访问器,而且结果似乎也不会返回到数据上下文。是否有其他方法访问此值,或者我必须从每个存储过程返回@@RowCount?恶心?

嗯。无可否认,这是一个最好的猜测,因为我没有在存储过程中尝试过,但这就是您要寻找的:

... Do Updates ...
// if sdc is your DataContext
int changedRecords = sdc.GetChangeSet().Updates.Count();
sdc.SubmitChanges();
这是用于更新的记录,您可以根据需要将.Updates替换为.insert和.Deletes。只要存储过程是数据上下文的一部分,GetChangeSet就应该跟踪它