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源,看起来已经包含了此修复程序.我觉得这应该是简单而有效的,但我花了相当多的时间.
如果你(我)根据这里的答案修改SubSonic.Core:Subsonic 3.0 and linq
然后投影就可以正常工作了。
然而,我认为这是一个非常糟糕的解决方案,因为它需要分叉一个项目并导致性能下降一个数量级。