Вероятно, вам просто нужно получить данные Category
из базы данных, прежде чем вы начнете проецировать их на пользовательские типы.
Получите только то, что вам нужно, но затем вызовите ToList()
для вашей коллекции, чтобы выполнить ее и вывести из базы данных. Тогда вы сможете свободно проецировать изображение любого типа.
var items = _db.GetQueryable<DataModels.Category>().ToList();
from category in items
select new Category
{
Id = category.Id,
Name = category.Name,
CreatedBy = category.CreatedBy.HasValue
? new Login { Id = category.CreatedBy ?? Guid.Empty } : null
}
edit : по мере появления новой информации появляются новые идеи - попробуйте эту:
partial class Category
{
public Category(int id, string name, Guid? createdByGuid)
{
Id = id;
Name = name;
CreatedBy = createdByGuid.HasValue ? new Login { Id = createdByGuid.Value } : null;
}
}
var items = _db.GetQueryable<DataModels.Category>().ToList();
from category in items
select new Category(category.Id, category.Name, category.CreatedBy)
Мне также интересно, почему в своем первоначальном вопросе вы проверяете Guid? дважды для нуля (HasValue
и ??
) - однако я не думаю, что именно это вызывает у вас проблемы.