亚音速3 LINQ投影问题,固定还是否?

que*_*rin 5 linq subsonic projection subsonic3

我目前正在遇到这里提到的问题(以及其他几个地方):Subsonic 3 Linq Projection Issue

这是使用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
                                }
                }
        };
Run Code Online (Sandbox Code Playgroud)

但AccountName始终为null.

如果我将AccountName更改为Name:

        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
                                }
                }
        };
Run Code Online (Sandbox Code Playgroud)

它工作正常.但这在我们的项目中是不可接受的; 我不能总是把这些名字排成一行(除非事实是如果我能这样做会使事情变得不那么清楚).

但我很困惑,因为看起来这个问题已得到修复:

"修复了投影返回null或空设置的问题"

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

所以,任何人都可以告诉我:这个问题是不是已修复,我是否必须应用http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb中的更改来实现此功能?或者我错过了什么.因为查看当前的SubSonic源,看起来已经包含了此修复程序.我觉得这应该是简单而有效的,但我花了相当多的时间.

que*_*rin 2

如果你(我)根据这里的答案修改SubSonic.Core:Subsonic 3.0 and linq

然后投影就可以正常工作了。

然而,我认为这是一个非常糟糕的解决方案,因为它需要分叉一个项目并导致性能下降一个数量级。