В нашем проекте активно используется EntityFramework, в целом я полностью доволен, но есть один момент, который так сказать напрягает. Суть момента состоит в том что в разделе запроса Select нельзя использовать параметрические конструкторы, очень интересует такой вопрос - есть ли какие-то обходные решения данной проблемы? Инициализировать свойства не очень удобно, так как запросы большие и используются в разных частях логики, причем запросы отличаются таблицами и связями, что к сожалению не позволяет использовать единожды написанный код LINQ запроса. А как было бы здорово использовать параметрические конструкторы.
Фрагмент запроса:
let checkRes = d.CheckDocumentsResult
where d.idRequest == idRequest
select new DocumentModel
{
IdDocument = d.idDocument,
FileName = d.FileName,
FileExtension = d.FileExtension,
FileDescription = d.FileDescription,
FileSize = d.FileSize,
Messages = (from dm in d.DocumentMessages
select new DocumentMessageModel
{
IdRequest = d.idRequest,
IdMessage = dm.idDocumentMessage,
CreateDate = dm.sysCreateDate,
MessageText = dm.Message,
UserName = ap.AccountProfile.FirstName
}),
CheckDocumentResult = checkRes != null
? new CheckDocumentResultModel
{
IdRequest = d.CheckDocumentsResult.idRequest,
IdRole = d.CheckDocumentsResult.idRole,
CheckResult = d.CheckDocumentsResult.CheckResult
}
: null,
DocumentType = new DocumentTypeModel
{
IdDocumentType = d.DcoumentType.idDocumentType,
DocCode = d.DcoumentType.DocCode,
ShortName = d.DcoumentType.ShortName,
Desscription = d.DcoumentType.Desscription
},