#entity-framework #properties #delegates #decompiler
#entity-framework #свойства #делегаты #Декомпилятор
Вопрос:
Я использую декомпилятор делегирования в своем проекте. https://github.com/hazzik/DelegateDecompiler
Модель сущности (часть):
public long Id { get; set; }
public long ItemId { get; set; }
public long InfoItemId { get; set; }
[Computed]
public bool IsInfo
{
get
{
return (InfoItemId > 0 amp;amp; ItemId == 0) ? true : false;
}
}
AttachmentModel:
private class AttachmentModel
{
public string OriginalFileName { get; set; }
public string ItemFileType { get; set; }
public string Thumbnail { get; set; }
public string File { get; set; }
public string Category { get; set; }
public bool IsInfo { get; set; }
}
Запрос (часть):
Attachments = (from attachments in db.Attachments
where attachments.ItemId == i.Id || attachments.InfoItemId == infoId
select new AttachmentModel
{
OriginalFileName = attachments.ItemOriginalFileName,
ItemFileType = attachments.ItemFileType,
Thumbnail = attachments.FileThumbnailRelative,
File = attachments.FileUrlRelative,
Category = attachments.ItemFileCategory,
IsInfo = attachments.IsInfo.Computed()
}).ToList()
Но я получил ошибку:
LINQ to Entities не распознает метод ‘Boolean ComputedBoolean’, и этот метод не может быть преобразован в выражение хранилища.
Вопрос: Возможно ли использовать декомпилятор делегирования в этом случае? Как? Пожалуйста, приведите какой-нибудь пример.
Комментарии:
1. Здравствуйте, может быть, это будет полезно. Я нашел чрезвычайно полезную статью Дейва Глика [post] ( daveaglick.com/posts/computed-properties-and-entity-framework ), которые описывают различные решения. В моем случае вложения использовались в качестве подзапроса, поэтому, когда я использую и перемещаю метод «.Decompile» из подзапроса на верхний уровень запроса — это решило проблему для меня.