i m в настоящее время меняет код доступа к данным с L2S на сущность framework db. У меня есть проблемы с запросами, как следующийstring.Join в запросах Linq to Entity
var emps = (from emp in DataContext.setupEmployees
let contacts = DataContext.setupContacts.Where(x => x.EmployeeID == emp.EmployeeID).Select(x => x.Contact)
select new
{
EmployeeName = emp.EmployeeName,
Contacts = string.Join(", ", contacts.ToArray())
}).ToList();
EF
говорит мне, что не может преобразовать метод string.join
в хранимых выражениях. Очевидным Обходной привести объекты в памяти (ToList, AsEnumerable и т.д.), а затем вызвать метод string.Join
как
var emps = (from emp in DataContext.setupEmployees
let contacts = DataContext.setupContacts.Where(x => x.EmployeeID == emp.EmployeeID).Select(x => x.Contact)
select new
{
EmployeeName = emp.EmployeeName,
Contacts = contacts
}).ToList().Select(x=>new{
x.EmployeeName,
Contacts = string.Join(", ",x.Contacts)
});
Это решение отлично работает, но его только, что его более громоздким, а я должен был бы дублировать выберите пункт в большом количестве запросов, которые отлично работали в L2S.
Мой вопрос: Есть ли способ, которым я могу избежать написания этого вопроса ToList
и вызова string.Join
и подобных методов в запросе `EF '?
http://stackoverflow.com/questions/4215066/entity -framework-with-linq-aggregate-to-concatenate-string – Andreas
http://stackoverflow.com/questions/4095658/how-do-i-concatenate-strings-in-entity-framework-query – Andreas