У меня была похожая проблема
IQueryable<Street> query = db.Streets.AsQueryable();
query = query.Where(street => street.Name.ToLower().StartsWith(keyword))
.Take(10)
.OrderBy(street => street.Name);
var list = query.Select(street => new
{
street.StreetId,
Name = street.Name + " " + street.Suburb.Name + " " + street.Suburb.State.Name + " " + street.Suburb.Postcode
});
street.Suburb.Postcode выбрасывал «не удалось преобразовать ошибку не примитивного типа» как int После ссылки Shuggy я исправил, добавив .AsEnumerable к значению int? -> преобразование строки «на стороне клиента», то есть LINQ to Objects. т.е.
var list = query.AsEnumerable().Select(street => new
{
street.StreetId,
Name = street.Name + " " + street.Suburb.Name + " " + street.Suburb.State.Name + " " + street.Suburb.Postcode
});