我有一个像这样的存储过程:
ALTER PROCEDURE [dbo].[SelectUserInfo]
AS
BEGIN
select * from User_Info
END
我正在使用LINQ
来调用此过程,并希望将数据存储在datatable
或dataset
中
在这里我在做什么:
DataClassesDataContext dc = new DataClassesDataContext();
DataTable dt = null;
dt = (DataTable)dc.SelectUserInfo();
但它没有给出错误。
错误是这样的:
无法将类型为'SingleResult`1 [SelectUserInfoResult]'的对象转换为类型 'System.Data.DataTable'。
请帮我这样做......
答案 0 :(得分:1)
确保您确实需要DataTable / DataSet。
DBML文件为您的存储过程创建一个返回类,在您的情况下,当您将存储过程SelectUserInfo添加到dbml文件时,会创建一个类SelectUserInfoResults
。 / p>
因此,如果您没有被迫使用DataTables / DataSet,您只需创建一个List<SelectUserInfoResults>
作为返回类型。
DataTables / DataSets和Linq To Entities类的性质非常不同,我建议尽可能避免混用它们。