@AlekseenkoAV

Возможно ли использование параметрического конструктора в LINQ запросах EntityFramework 6.1?

В нашем проекте активно используется 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
		},
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 1
Splo1ter
@Splo1ter
.NET Developer (9 years+)
Может лучше использовать проекции, чем генерировать такой гавнокод ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы