C# 在实体框架数据库中调用存储过程-结果类中的第一列生成问题
我的存储过程根据条件(如下所示)从2个select语句返回结果, 当我为这个存储过程生成edmx文件输入和结果类时,在结果类中我只得到ID、name和DateIn。 结果类中缺少DateOut列。 请帮助我使用entity framework database first方法在edmx中获取此列C# 在实体框架数据库中调用存储过程-结果类中的第一列生成问题,c#,sql-server,entity-framework-6,ado.net,C#,Sql Server,Entity Framework 6,Ado.net,我的存储过程根据条件(如下所示)从2个select语句返回结果, 当我为这个存储过程生成edmx文件输入和结果类时,在结果类中我只得到ID、name和DateIn。 结果类中缺少DateOut列。 请帮助我使用entity framework database first方法在edmx中获取此列 CREATE PROCEDURE [dbo].[GetStocks] ( @id INTEGER ) AS BEGIN if @id=2 select ID,name,DateI
CREATE PROCEDURE [dbo].[GetStocks]
(
@id INTEGER
)
AS
BEGIN
if @id=2
select ID,name,DateIn from dbo.StcokIn
else
select ID,name,DateOut from dbo.StockOut;
END
我生成了edmx文件,但在结果类中没有得到DateOut列
namespace ConsoleApp6
{
using System;
public partial class GetStcoks_Result
{
public int ID { get; set; }
public string name { get; set; }
public string DateIn { get; set; }
}
}
我想获取GetStcoks_结果类中缺少的DateOut列。修改您的SP,如下所示:
namespace ConsoleApp6
{
using System;
public partial class GetStcoks_Result
{
public int ID { get; set; }
public string name { get; set; }
public string DateIn { get; set; }
}
}
CREATE PROCEDURE [dbo].[GetPersons]
(
@id INTEGER
)
AS
BEGIN
if @id=2
select ID,FirstName='', LastName from dbo.Person
else
select ID,FirstName, LastName='' from dbo.Person;
END
现在再次更新您是EDMX,您将获得该列。为什么您要基于输入参数选择单个属性,并且仍然要使用这两个属性对对象建模?为什么不制定一个标准过程,返回两个属性,然后在应用程序中使用所需的属性(如果不是两个)
CREATE PROCEDURE [dbo].[GetPersons]
(
@id INTEGER
)
AS
BEGIN
select ID,FirstName, LastName from dbo.Person where id = @id
END
您的名字不是姓氏:select ID,FirstName应该是select ID,LastName,FirstName而不修改SP我们是否可以使用实体框架检索FirstName列?否。SP返回ID和LastName;或者ID和FirstName。嗨,harsha,有没有一个选项可以在不修改存储过程的情况下通过entity framework获取此列(FirstName)?没有@user1928165,entity framework将获取我们在SP中提到的列。因此,在使用上述任何条件时,我们也需要指定这些列。否则,您可以在代码中编写LINQ查询来获得相同的结果,并编写视图模型类来返回结果,而不是使用此SP。