我目前遇到此处(和其他多个地方)提到的问题: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
                                }
                }
        };

但是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
                                }
                }
        };

它工作正常。但这在我们的项目中是 Not Acceptable 。我不能总是使名字排成一行(除了事实,如果可以的话,这会使事情变得不太清楚)。

但是我很困惑,因为看来这个问题已经解决了:

“解决了投影返回空值或空设置的问题”

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

因此,谁能告诉我:这个问题是否解决?是否必须应用http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb上的更改才能使此工作正常进行?还是我错过了一些东西。因为查看当前的SubSonic信号源似乎已包含此修复程序。我觉得这应该很简单并且可以工作,但是相反,我花了很多时间在上面。

最佳答案

如果您(我)根据此处的答案修改SubSonic.Core:Subsonic 3.0 and linq

然后,投影正常工作。

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

关于linq - Subsonic 3 LINQ投影问题,已解决还是没有?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3111583/

10-11 15:15