我正在使用实体框架 v6。我有一个存储过程,如下所示
CREATE PROCEDURE [dbo].[GetCountryList]
(
@CustomerName VARCHAR(MAX),
@SearchCriteria VARCHAR(MAX)
)
AS
BEGIN
SET NOCOUNT ON
SELECT CountryID, CountryName FROM dbo.Table1
WHERE CustomerName = @CustomerName AND CountryName = @SearchCriteria
END
现在我有一个模型类
public class CountryName
{
public int CountryId { get; set; }
public string CountryName { get; set; }
}
所以我想得到的结果SELECT
查询在一个List<CountryName>
type
List<CountryName> countryList = null;
using (DbEntities dbContext = new DbEntities())
{
countryList = //my code to collect the result
}
好吧,我可以直接在表上运行 LINQ to SQL,但不幸的是我的要求是从存储过程中获取数据。那么,我该怎么做呢?
- 您需要将存储过程作为函数导入。右键单击实体模型的工作区并选择
Add -> Function Import
.
- 在“添加函数导入”对话框中,输入您希望在模型中引用存储过程的名称,例如
GetCountryListSP
,从下拉列表中选择您的过程,然后选择要作为过程的返回值Entities
并选择CountryName
从下拉列表中。
-
然后在代码中:
var result = db.GetCountryListSP();//Send parameters too
通过这种方法,您可以防止返回-1
的存储过程。请检查this发布有关实体框架存储过程问题的更多详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)