Я пытаюсь загрузить пользовательский объект, используя linq из контекста данных сущности. Вот мой кодEf CTP5: help help
from category in _db.GetQueryable<DataModels.Category>()
select new Category
{
Id = category.Id,
Name = category.Name,
CreatedBy = category.CreatedBy.HasValue ? new Login { Id = category.CreatedBy ?? Guid.Empty } : null
}
//Note: GetQueryable<DataModels.Category> actually use Set<DataModels.Category>() in DataContext class.
Но он генерирует следующее сообщение об ошибке:
Unable to create a constant value of type 'CodeOnly.EF.DomainModels.Login'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.
Но выше код всегда будет работать, если я использую Linq2SQL.
Любая идея, как я могу добиться этого в сценарии только кода EF5.
Просто дикая догадка здесь, но вы получаете ту же ошибку, если вы переместили выражение 'CreatedBy' в отдельное предложение' let'? Таким образом вы перемещаете это из проекции. –
CreatedBy здесь является свойством категории datamodel (нулевой GUID). Так что не уверен, как «let» здесь полезен – learner
Какой тип 'CreatedBy' в классе' Category'? Если это «Логин» (как указано вами, вы устанавливаете его значение в «новый вход»), или это руководство (как указано в «Id = category.CreatedBy ?? Guid.Empty')? –