Tôi hiện đang gặp sự cố được đề cập ở đây (và một số địa điểm khác): Subsonic 3 Linq Projection IssueSubsonic 3 LINQ Projection issue, cố định hay không?
Điều này xảy ra khi sử dụng gói phát hành 3.0.0.4 và nó cũng xảy ra khi tôi lấy phiên bản mới nhất từ GitHub.
Tôi đang sử dụng Mẫu LINQ.
tôi có mã này:
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
}
}
};
Nhưng AccountName luôn là null.
Nếu tôi thay đổi 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
}
}
};
Nó hoạt động tốt. Nhưng điều đó không thể chấp nhận được trong dự án của chúng tôi; Tôi không phải lúc nào cũng có thể làm cho các tên được xếp hàng (ngoài thực tế là nó sẽ làm cho mọi việc ít rõ ràng hơn nếu tôi có thể).
Nhưng tôi khá bối rối vì nó sẽ có vẻ vấn đề này cố được khắc phục:
"Cố định vấn đề mà dự được trở về thiết lập null hoặc trống rỗng"
-http://blog.wekeroad.com/2010/03/21/subsonic-3-0-0-4-released
Vì vậy, có thể bất cứ ai cho tôi biết: Vấn đề này có được khắc phục không và tôi có phải áp dụng các thay đổi được tìm thấy tại đây tại http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb để thực hiện công việc này không? Hay tôi đang thiếu cái gì đó. Bởi vì nhìn qua nguồn SubSonic hiện tại nó xuất hiện sửa chữa này đã được bao gồm. Tôi cảm thấy như thế này nên đơn giản và công việc, nhưng thay vào đó tôi đã dành một lượng thời gian quá mức trên đó.
Tôi sẽ không có thời gian để tạo ra một dự án tối thiểu minh họa vấn đề của tôi trong một vài ngày, nhưng tôi dự định. _pulseQuery & _accountQuery triển khai IQueryable và chỉ cần hiển thị SubSonic.Repository.SubSonicRepository .GetAll(). Tôi bọc các cơ sở SubSonic với một giao diện DAO đơn giản và hiển thị IQueryable cho các lớp cao hơn. Tôi đang sử dụng mẫu LINQ của SubSonic (còn gọi là Mẫu nâng cao?) –
Saintedlama, tôi cũng gặp vấn đề này bằng cách sử dụng 3.0.0.4 nhưng tôi không thể tái tạo nó trong một bộ nhỏ hơn - bên ngoài một dự án lớn hơn. Tuy nhiên, tôi đã minh họa hai vấn đề thường được đăng khác trong một mẫu nhỏ được đặt tại http://github.com/andymeadows/SubSonic-Defect-Help – andymeadows