您好,我开始学习如何使用.Net Core。我一直试图让.FromSql()与我的查询之一一起工作。我遇到的问题是,当查询命中服务器时,当我使用query.MetricId设置@metricID时,@ metric被设置为@ metricID = N'“ 100”'。我使用sql探查器来查看为什么我一直没有得到任何回报,并且看起来像这样。
exec sp_executesql N' select * from metrics where rr.metric_id = @metricID',N'@metricID nvarchar(5)',@metricID=N'"100"'
public async Task<List<MetricView>> GetMetricAsync(MetricQuery query)
{
string qry = @"select * from metrics where metricid = @metricID";
SqlParameter metricID = new SqlParameter("@metricID", query.MetricId);
try
{
var metricReturn = await _context.Metrics
.FromSql(qry, metricID).ToListAsync();
return _mapper.Map<List<MetricView>>(metricReturn);(dropdown);
}
catch (Exception e)
{
var t = e.Message;
return null;
}
finally
{
_sqlConnection.Dispose();
}
}
public class MetricQuery
{
public string MetricId { get; set; }
public string MircoRegion { get; set; }
public string Consortia { get; set; }
public string Institution { get; set; }
public string AcademicYear { get; set; }
}
答案 0 :(得分:0)
我遇到的问题是,当查询命中服务器时,@ metric设置为@ metricID = N'“ 100”'
对于此问题,这是由op在邮递员中添加额外的双引号引起的。
将其从邮递员中删除应该可以解决此问题。