Структура предприятия 4.1 Нетерпеливых Нагрузки на объект complext

В текущем проекте MVC4.0 я использую Структуру Предприятия 4.1 Базы данных первая модель.

Часть этой структуры включает следующие таблицы

compGroupData SurveyData SecondaryData

к compGroupData и SurveyData не присоединяются в базе данных

SecondaryData соединен с SurveyData на связи "один к одному" через Внешний ключ SurveyData.surveydatakey = SecondaryData.surveydatakey

В моем проекте у меня есть класс ComparisonWithData, определенный как:

public class ComparisonWithData
{
    public compGroupData compgrp { get; set; }
    public SurveyData surveydata { get; set; }
    public ComparisonWithData()
    {
        compgrp = new compGroupData();
        surveydata = new SurveyData();
    }
}

Это дает мне набор результатов для определенной группы Сравнения и данных, которые соответствуют этому.

В прошлом я восстановил данные для этого через следующий вопрос:

    List comparisonwithdata  = ((from compgrp in db.compGroupDatas
                       where compgrp.grpYear == rptyear && compgrp.CompGroupID == ccompgrp.CompGrpID
                       join surveydata in db.SurveyDatas on new { compgrp.companyid, SurveyYear = (Int32)compgrp.SurveyYear } equals new { companyid = surveydata.companyid, SurveyYear = surveydata.surveyyear }
                       select new ComparisonWithData
                       {
                           compgrp = compgrp,
                           surveydata = surveydata,


                       }
                       )).ToList();

С недавним изменением в данных я теперь должен также сослаться на SecondaryData, но из-за количества отчетов действительно нуждаются в этом, чтобы загрузить Нетерпеливо вместо Ленивого. (Ленивая погрузка во время петли приводит к тысячам требований DB),

Я посмотрел на использование "Включать" метода на surveydata, а также кастинге начального вопроса как ObjectQuery и выполнение Включать от этого.

Первый метод не делает нетерпеливого груза, и второй метод, кажется, всегда возвращает несуществующий объект в результате.

Есть ли метод к Нетерпеливому грузу SecondaryData для SurveyData или если я посмотреть на другой подход все вместе.

Мое единственное ограничение на это - то, что я не могу подойти к EF5 из-за ограничения, которое мы имеем на.Net 4.5

Любая помощь значительно ценилась бы.

Спасибо.

1
nl ja de

1 ответы

Вы могли попытаться спроектировать в анонимный объект сначала и использование также SecondaryData в том проектировании, осуществить этот результат и затем проект снова в ваш объект конечного результата. Автоматические Отношения Fixup, который обеспечивает контекст EF, должны населить навигационную собственность surveyData. SecondaryData вашего ComparisonWithData объект (как долго, поскольку вы не отключаете отслеживание изменений в своем вопросе):

var data = ((//... part up to select unchanged ...
           select new//anonymous object
           {
               compgrp = compgrp,
               surveydata = surveydata,
               secondarydata = surveydata.SecondaryData
           }
           )).AsEnumerable();
          //part until here is DB query, the rest from here is query in memory

List comparisonwithdata =
           (from d in data
           select new ComparisonWithData
           {
               compgrp = d.compgrp,
               surveydata = d.surveydata
           }
           )).ToList();
0
добавлено
Я счел другую почту очень похожей на этого, которого это работает отлично. Единственная разница - я didn' t заканчивают тем, что делали его в двух шагах. Когда погрузка "secondarydata" возражает в surveydata. SecondaryData также непосредственно загружается. Я надеялся, что был другой способ сделать его немного более прямой, но поскольку этот метод работает, это - лучший ответ. Еще раз спасибо за помощь
добавлено автор Jeff Williams, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)