我正在从LINQ切换到SQL,然后切换到LINQ实体,在转换过程中遇到错误“LINQ to Entities does not recognized the method‘system.string format(system.string,system.object,system.object)’method,而此方法无法转换为存储表达式”。以下代码是罪魁祸首。我知道这与我下面使用的动态类型生成有关。如何仍然使用动态类型和L2e?
var query = _db.Persons.Where(p => p.PersonId == PersonId);
if (query.Count() > 0)
{
var data = query.Join(_db.Users, p => p.UserId, u => u.UserId, (p, u) => new
{
Id = p.PersonId,
Name = string.Format("{0} {1}", p.FirstName, p.LastName),
Phone = p.Phone,
Email = u.Email
}).Single();
return data;
}
编辑:
好吧,在@john hartsock向我展示了简单的解决方案之后,感觉有点傻…
如果我想做一些更复杂的字符串操作呢?