【发布时间】:2018-04-23 15:21:08
【问题描述】:
我有如下调用存储过程的方法;
public IList<Trader> GetTradersWithinRadius(int category, decimal latitude, decimal longitude)
{
var sproc = "FindTradersWithinRadiusLatLong";
var sqlParams = new List<SqlParameter>()
{
new SqlParameter("@CATEGORY", category),
new SqlParameter("@LAT", latitude),
new SqlParameter("@LONG", longitude),
};
var parameters = sqlParams.ToArray<object>();
var traders = this.Traders.FromSql($"{sproc} @CATEGORY, @LAT, @LONG", parameters).ToList();
return traders;
}
现在如果我直接在 SQL Management Studio 中执行存储过程;
EXEC @return_value = [FindTradersWithinRadiusLatLong]
@LAT = 43.590000,
@LONG = -111.120000,
@CATEGORY = 1
我得到一个结果。但是,当我调用上述方法时,会返回一个空集?
交易者类是;
public class Trader : AuditableEntity
{
public string Name { get; set; }
public string Telephone { get; set; }
public string Email { get; set; }
public string Website { get; set; }
public List<Profile> Profiles { get; set; }
public List<Address> Addresses { get; set; }
public List<Contact> Contacts { get; set; }
public List<TraderCategory> Categories { get; set; }
public string Notes { get; set; }
public List<TraderGallery> Gallery { get; set; }
public List<Review> Reviews { get; set; }
public TraderReviewStatistic ReviewStatistic { get; set; }
public ApplicationUser User { get; set; }
}
它没有生成我通过 MSSQL 管理器获得的列表有什么原因吗?
【问题讨论】:
-
当您尝试调用 GetTradersWithinRadius 时的响应是什么?它是空的吗?你怎么称呼它?
-
@AussieJoe 没有错误,只是一个空的结果集。我将截图结果
-
你检查过实体框架生成的SQL吗?您可以使用 SQL Profiler 在服务器/SQL 端检查这些参数值吗?另外,是否需要“.ToArray
标签: c# sql-server entity-framework asp.net-core-2.0