Rik*_*iki 5 c# sql-server stored-procedures entity-framework entity-framework-6
我正在使用Entity Framework 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
Run Code Online (Sandbox Code Playgroud)
现在我有一个模型类
public class CountryName
{
public int CountryId { get; set; }
public string CountryName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以我想SELECT在一个List<CountryName>类型中获得查询的结果
List<CountryName> countryList = null;
using (DbEntities dbContext = new DbEntities())
{
countryList = //my code to collect the result
}
Run Code Online (Sandbox Code Playgroud)
好吧,我可以直接在表上运行LINQ to SQL,但不幸的是我要求从存储过程中获取数据.那么,我该怎么做呢?
Sal*_*ari 11
Add -> Function Import.GetCountryListSP,从下拉列表中选择您的过程,然后选择要返回的过程值,并从下拉列表中进行Entities选择CountryName.名单.然后在代码中:
var result = db.GetCountryListSP();//Send parameters too
Run Code Online (Sandbox Code Playgroud)
使用此方法可以防止返回-1存储过程.有关Entity Framework存储过程问题的更多详细信息,请查看此帖子.
您可以导入而无需导入。像这样:
var countryList = dbContext.Database.SqlQuery<CountryName>("[GetCountryList]").ToList();
Run Code Online (Sandbox Code Playgroud)
EntityFramework有时无法识别或导入SP)))因此,这就是为什么我使用此代码段节省时间的原因。
| 归档时间: |
|
| 查看次数: |
14030 次 |
| 最近记录: |