Ich erlebe derzeit die hier erwähnte Problem (und einige andere Plätze): Subsonic 3 Linq Projection IssueSubsonic 3 LINQ Projektionsproblem, behoben oder nicht?
Dies auftritt, die 3.0.0.4 Release-Paket verwendet wird, und es tritt auch auf, wenn ich die neueste von GitHub greifen und es bauen.
Ich verwende die LINQ-Vorlagen.
Ich habe diesen Code:
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
}
}
};
Aber Accountname ist immer null.
Wenn ich die Account auf Namen ändern:
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
}
}
};
Es funktioniert gut. Aber das ist in unserem Projekt nicht akzeptabel. Ich kann die Namen nicht immer in eine Reihe bringen (abgesehen davon, dass es die Dinge weniger deutlich machen würde, wenn ich könnte).
Aber ich bin ganz verwirrt, weil es diese Frage scheinen würde ist behoben:
„Problem behoben, bei Projektionen null oder leer Einstellungen wurden Rückkehr“
-http://blog.wekeroad.com/2010/03/21/subsonic-3-0-0-4-released
So kann jeder Sagen Sie mir: Ist das Problem nicht behoben, und muss ich die hier gefundenen Änderungen unter http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb anwenden, damit dies funktioniert? Oder vermisse ich etwas. Beim Durchsehen der aktuellen SubSonic-Quelle scheint dieser Fix enthalten zu sein. Ich denke, das sollte einfach sein und funktionieren, aber stattdessen habe ich viel Zeit darauf verwendet.
Ich werde nicht die Zeit haben, ein minimales Projekt zu produzieren, das mein Problem für ein paar Tage darstellt, aber ich habe vor, es zu tun. _pulseQuery & _accountQuery implementieren IQueryable und stellen Sie einfach SubSonic.Repository.SubSonicRepository .GetAll(). Ich umfasse die SubSonic-Funktionen mit einer einfachen DAO-Schnittstelle und stelle IQueryable's höheren Ebenen zur Verfügung. Ich benutze SubSonic's LINQ Templates (auch Advanced Templates?) –
Saintedlama, ich leide auch unter diesem Problem mit 3.0.0.4, aber ich konnte es nicht in einem kleineren Set reproduzieren - außerhalb eines größeren Projekts. Ich habe jedoch zwei weitere häufig gestellte Probleme in einem kleinen Beispielsatz unter http://github.com/andymeadows/SubSonic-Defect-Help veranschaulicht – andymeadows