Дозвуковые 3 проблемы Проекции LINQ, устраненные или нет?

Я в настоящее время испытываю проблему, упомянутую здесь (и несколько других мест): Дозвуковые 3 Проблемы Проекции Linq

Это происходит с помощью 3.0.0.4 пакетов выпуска, и также происходит, когда я захватываю последнее от GitHub и создаю его.

Я использую Шаблоны LINQ.

У меня есть этот код:

        var newModel = new ViewModels.HomeIndexViewModel() {
            PulseListViewModel = 
                new ViewModels.PulseListViewModel 
                {
                    Pulses = from p in _pulseQuery
                             join a in _accountQuery on p.AccountId equals a.AccountId
                             orderby p.CreateDate descending
                             select new PulseListViewModel.Pulse() 
                                {
                                      AccountName = a.Name
                                    , Category = p.Category
                                    , CreateDate = p.CreateDate
                                    , Link = p.Link
                                    , Message = p.Message
                                    , Source = p.Source
                                    , Title = p.Title
                                }
                }
        };

Но AccountName является всегда пустым.

Если я изменяю AccountName для Именования:

        var newModel = new ViewModels.HomeIndexViewModel() {
            PulseListViewModel = 
                new ViewModels.PulseListViewModel 
                {
                    Pulses = from p in _pulseQuery
                             join a in _accountQuery on p.AccountId equals a.AccountId
                             orderby p.CreateDate descending
                             select new PulseListViewModel.Pulse() 
                                {
                                    Name = a.Name
                                    , Category = p.Category
                                    , CreateDate = p.CreateDate
                                    , Link = p.Link
                                    , Message = p.Message
                                    , Source = p.Source
                                    , Title = p.Title
                                }
                }
        };

Это хорошо работает. Но это не приемлемо в нашем проекте; я не могу всегда составлять строку имен (помимо того, что она сделала бы вещи менее ясными, если я мог).

Но я вполне смущен, потому что казалось бы, что эта проблема была устранена:

"Устраненная проблема, куда Проекции возвращали пустые или пустые настройки"

-- http://blog.wekeroad.com/2010/03/21/subsonic-3-0-0-4-released

Так, может любой говорить мне: разве эта проблема не устраняется, и я должен применить изменения, которые, как находят здесь по http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb, сделали эту работу? Или я пропускаю что-то. Поскольку, просматривая текущий источник SubSonic кажется, что эта фиксация была включена. Я чувствую, что это должно быть просто и работать, но вместо этого я потратил беспорядочное количество времени на него.

5
задан Community 23 May 2017 в 12:13
поделиться

2 ответа

Если вы (я) измените SubSonic.Core в соответствии с ответом здесь: Subsonic 3.0 и linq

Тогда проекция работает правильно.

Однако я считаю это очень плохим решением, так как оно требует форка проекта и вводит снижение производительности на порядок.

2
ответ дан 14 December 2019 в 18:58
поделиться

Не могли бы вы прислать мне еще немного кода (особенно то, что стоит за _pulseQuery и _accountQuery), чтобы я мог исправить эту проблему. Используете ли вы SimpleRepository, подход ActiveRecord или объекты запроса напрямую?

2
ответ дан 14 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: