C# 查询错误:LINQ to Entities无法识别方法';字符串ToString()';方法
我必须在编辑页面中选中复选框。为此,我有如下查询:C# 查询错误:LINQ to Entities无法识别方法';字符串ToString()';方法,c#,linq,C#,Linq,我必须在编辑页面中选中复选框。为此,我有如下查询: var queryFI=(from u in _db.User where u.UserID==id where u.IsActive==1 select u); var join_queryFI=from r in queryFI join f in _db.Financial on r.FinancialID equals f.FinancialID
var queryFI=(from u in _db.User where u.UserID==id where u.IsActive==1
select u);
var join_queryFI=from r in queryFI join f in _db.Financial on r.FinancialID equals f.FinancialID
into c
from d in c.DefaultIfEmpty()
select new viewpartial
{
Text = d.FiName,
Value = d.FinancialID.ToString(),
Selected = d.FinancialID == r.FinancialIntermediaryID ? true : false
};
ViewBag.IfcList = join_queryFI.ToList();
我有一个错误:
LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression
请帮助您可以使用方法而不是ToString
请再试一次,
SqlFunctions.StringConvert(d.FinancialID)
执行查询后,您可以将其转换为字符串:
var queryFI = (from u in _db.User
where u.UserID == id
where u.IsActive == 1
select u);
var join_queryFI = from r in queryFI
join f in _db.Financial on r.FinancialID equals f.FinancialID
into c
from d in c.DefaultIfEmpty()
select new viewpartial
{
Text = d.FiName,
Value = d.FinancialID,
Selected = d.FinancialID == r.FinancialIntermediaryID ? true : false
};
ViewBag.IfcList = join_queryFI.ToList().Select(x => new { Text = x.Text, Value = x.Value.ToString(), Selected = x.Selected }).ToList();
假设
d.FinancialID
可能是一个int,则必须强制转换为双精度或十进制(正如SqlFunctions.StringConvert
没有重载将int作为参数):因此SqlFunctions.StringConvert((double)d.FinancialID)