代码:
var page = (from p in dbContext.Page
where p.Id== Id
select new PageObject
{
PageID = p.PageID,
CategoryId = p.attr.Any(a => a.Attribute == "CategoryId") ?
p.attr.Where(a => a.Attribute == "CategoryId").FirstOrDefault().Value : 0 // How do I convert the Value to Int?
}).FirstOrDefault();
问题:
我们在现有的应用程序中使用EF,在上面的代码中它正在初始化PageObject(为了简单起见,我删除了很多属性).IntryId是一个整数,我试图弄清楚如何将Value转换为int,我无法在LINQ查询中使用int.Parse,因为它会抛出错误:
LINQ to Entities无法识别方法'Int32 Parse(System.String)'方法,这个方法无法翻译 进入商店表达。
注意:我无法避免使用短手属性初始化,这需要在LINQ查询本身中完成。