我有一个使用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之间的差异,因为其他所有方面都是相同的,但是我无法弄清差异是什么。