1

我有一个这样的存储过程:

ALTER PROCEDURE [dbo].[SelectUserInfo] 

AS
BEGIN
select * from User_Info
END 

我正在使用LINQ调用此过程并希望将数据存储在 adatatabledataset 这里我正在做的事情:

DataClassesDataContext dc = new DataClassesDataContext();
DataTable dt = null;
dt = (DataTable)dc.SelectUserInfo();

但它不起作用它的给出错误。

错误是这样的:

无法将“SingleResult`1[SelectUserInfoResult]”类型的对象转换为“System.Data.DataTable”类型。

请帮我做到这一点...

4

1 回答 1

1

确保您确实需要一个 DataTable/DataSet。

DBML 文件为您的 Stored Procedure 创建了一个返回类,在您的情况下,SelectUserInfoResults当您将存储过程 SelectUserInfo 添加到您的 dbml 文件时创建了一个类。

因此,如果您没有被迫使用 DataTables/DataSet,您可以简单地创建 aList<SelectUserInfoResults>作为您的返回类型。

DataTables/DataSets 和 Linq To Entities 类的性质非常不同,我建议尽可能避免混合使用它们。

于 2014-08-05T11:50:47.117 回答