LINQ to Entities 无法识别方法 'System.Object get_Item(System.String)' 方法
LINQ to Entities does not recognize the method 'System.Object get_Item(System.String)' method
在尝试将数据输出到视图时出现以下错误。
LINQ to Entities 无法识别方法 'System.Object get_Item(System.String)' 方法,并且无法将此方法转换为存储表达式。
控制器代码:
public ActionResult Index()
{
return View(ReturnResults());
}
public IQueryable<ShippingRequest> ReturnResults()
{
RatesModel db = new RatesModel();
IQueryable<ShippingRequest> response = db.ShippingRequests;
var results = response
.Where(r => r.UserId == (int)Session["UserId"]);
return results;
}
查看代码:
@model IEnumerable<ShippingRatesApp.Models.ShippingRequest>
@{
ViewBag.Title = "Get Rates";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h3>Shipping Rates</h3>
@{
<table>
@foreach (var rate in Model)
{
<tr>
<td>@rate.ShipRate</td>
</tr>
}
</table>
}
我是 c# 的新手,none 我遇到的网络搜索已经解决了我的问题。有人可以帮我解决这个问题吗?谢谢!
意味着它不能将Session["UserId"]
翻译成SQL(它不够聪明,无法从集合中提取值)。我建议在使用之前将其存储在一个值中:
var currentUserId = (int)Session["UserId"];
var results = response
.Where(r => r.UserId == currentUserId);
在尝试将数据输出到视图时出现以下错误。 LINQ to Entities 无法识别方法 'System.Object get_Item(System.String)' 方法,并且无法将此方法转换为存储表达式。
控制器代码:
public ActionResult Index()
{
return View(ReturnResults());
}
public IQueryable<ShippingRequest> ReturnResults()
{
RatesModel db = new RatesModel();
IQueryable<ShippingRequest> response = db.ShippingRequests;
var results = response
.Where(r => r.UserId == (int)Session["UserId"]);
return results;
}
查看代码:
@model IEnumerable<ShippingRatesApp.Models.ShippingRequest>
@{
ViewBag.Title = "Get Rates";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h3>Shipping Rates</h3>
@{
<table>
@foreach (var rate in Model)
{
<tr>
<td>@rate.ShipRate</td>
</tr>
}
</table>
}
我是 c# 的新手,none 我遇到的网络搜索已经解决了我的问题。有人可以帮我解决这个问题吗?谢谢!
意味着它不能将Session["UserId"]
翻译成SQL(它不够聪明,无法从集合中提取值)。我建议在使用之前将其存储在一个值中:
var currentUserId = (int)Session["UserId"];
var results = response
.Where(r => r.UserId == currentUserId);