Здравствуйте,Linq2SQL получить ребенок
я беру классический пример, у меня есть Customer
стола и Purchase
таблицу, клиент может иметь несколько заказа.
создать DBML
файл и я падаю от «Окно проводника сервера» как таблицы в редакторе DBML, две сущности генерируются: Customers
и Purchases
У меня есть некоторые объекты:
public interface IMyCustomer
{
int Id { get; set; }
string Code { get; set; }
string Firstname { get; set; }
string Lastname { get; set; }
List<IMyPurchase> Purchases { get; set; }
}
public class MyCustomer : IMyCustomer
{
public int Id { get; set; }
public string Code { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public List<IMyPurchase> Orders { get; set; }
}
public interface IMyPurchase
{
int Id { get; set; }
string Code { get; set; }
DateTime CreationDate { get; set; }
}
public class MyPurchase : IMyPurchase
{
public int Id { get; set; }
public string Code { get; set; }
public DateTime CreationDate { get; set; }
}
var result =
from customer in _dataContext.Customers
join order in _dataContext.Purchases on customer.Id equals order.IdCustomer
select new MyCustomer
{
Code = customer.Code,
Firstname = customer.Firstname,
Lastname = customer.Lastname,
Id = customer.Id,
Purchases = _dataContext.Purchases
.Select(x => x.IdCustomer == customer.Id)
.Cast<IMyPurchase>()
.ToList<IMyPurchase>()
};
LINQ работа запроса. Для ввода результата у меня есть вся информация о customer
, у меня есть правильное число строк в Purchases
, но каждое свойство каждой записи Purchases
равно null. Я бы хотел загрузить Customer
info и ВСЕ purchase
Есть идеи?
Спасибо,
У меня есть много туда и обратно в базу данных, для каждой покупки у меня есть туда и обратно, не представляется возможным чтобы избежать этого? –
Соединение, которое использует @Johnn Blade, будет запрашивать только один раз. Вместо того, чтобы выбирать новый анонимный тип, как в своем примере, просто используйте тот же механизм select, что и в моем ответе, но вместо ссылки на '_dataContext.Purchases' используйте объединенный ObjectSet. – lukiffer