托管在服务器上时,用于运行存储过程的EF Core .FromSql无法处理别名

时间:2018-09-27 16:22:34

标签: c# asp.net-core ef-core-2.1

我有一个使用EF Core的ASP.Net Core 2.1网站,当在VS和IIS中在本地PC(Windows 10 Pro)上运行并连接到实时数据库时,该网站运行良好。但是,当我将此网站部署到实时Web服务器(Windows Server 2012 r2)时,仍连接到同一数据库时,出现以下错误:

  

a的结果中不存在必需的列“ DateLive”   “ FromSql”操作

我已经尝试了以下两种方法来调用存储过程,并且在实时服务器上时都给出相同的错误,但是在本地可以正常工作。

List<SqlParameter> paramList = new List<SqlParameter>();
paramList.Add(new SqlParameter("@CustomerId", SqlDbType.Int) { Value = customerId });
DbParameter[] parameters = paramList.ToArray();
//Method 1
return _context.Set<sp_GetCustomer_Result>().FromSql($"sp_GetCustomer @CustomerId", parameters);
//Method 2
return _context.GetCustomers.FromSql($"sp_GetCustomer @CustomerId", parameters);

存储过程进行如下普通选择时没有问题

select DateTimeEntered from Customers

但是当使用如下别名时,会出现此错误。

select DateTimeEntered as DateLive from Customers

这必须归结为Web服务器和PC之间的差异,因为其他所有方面都是相同的,但是我无法弄清差异是什么。

0 个答案:

没有答案