Bao gồm không hoạt động sau khi tôi thực hiện lựa chọn trên truy vấn IQueryable. Có cách nào mắc kẹt không? truy vấn của tôi làNếu tôi chọn từ một IQueryable thì Bao gồm bị mất
public IQueryable<Network> GetAllNetworks()
{
var query = (from n in _db.NetworkSet
.Include("NetworkContacts.Contact")
.Include("NetworkContacts.Contact.RelationshipSource.Target")
.Include("NetworkContacts.Contact.RelationshipSource.Source")
select (n));
return query;;
}
sau đó tôi cố gắng để cư mya ViewModel trong lớp WebUI của tôi bằng cách sử dụng đoạn mã sau
var projectedNetworks =
from n in GetAllNetworks()
select new NetworkViewModel
{
Name = n.Name,
Contacts = from contact in networkList
.SelectMany(nc => nc.NetworkContacts)
.Where(nc => nc.Member == true)
.Where(nc => nc.NetworkId == n.ID)
.Select(c => c.Contact)
select contact,
};
return projectedNetworks;
Vấn đề bây giờ xảy ra trong tôi mới được tạo ra NetworkViewModel Các đối tượng Liên hệ bộ sưu tập này không bao gồm bất kỳ dữ liệu được tải cho RelationshipSource.Target hoặc RelationshipSource.Source
Tuy nhiên, dữ liệu có khi chạy từ phương pháp IQueryable Repository gốc. Tuy nhiên, dữ liệu bao gồm có liên quan dường như không được chuyển vào bộ sưu tập Danh bạ mới được tạo khi tôi sử dụng mã Select New NetworkViewModel {} ở trên.
Có cách nào để bảo toàn dữ liệu Bao gồm này khi dữ liệu được chuyển vào đối tượng mới không? Hiện tại, tôi chỉ tiếp tục nhận ngoại lệ NULL
Xin chào Craig - Cảm ơn bạn đã nhận xét và liên kết. Tôi nên sử dụng ContactViewModel ở đâu - Bạn có gợi ý rằng tôi thực hiện một phép chiếu trong một lệnh cấm? Điều đó có thể không? –