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