Я использовал структуру сущности с моим примером. Я хотел отфильтровать дочерний объект, но он прерывает программу во время выполнения с ошибкой: «Объект или сложный тип« CodeFirstNamespace.Customer »не могут быть сконструированы в запросе LINQ to Entities». Может кто-нибудь мне помочь? Благодарю.Entity Framework - фильтр дочернего объекта
public class Customer
{
public int CustomerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
//public virtual ICollection<Address> Addresses
public List<User> Users { get; set; }
public List<Address> Addresses { get; set; }
public List<Order> Orders { get; set; }
public List<CheckProduct> CheckProducts { get; set; }
}
public Customer GetCustomerCheckProduct(string email, Byte checkType)
{
IQueryable<Customer> customers = context.Set<Customer>().Include("CheckProducts").Where(c => c.Email == email);
if (checkType != 0)
{
var cus = customers.Select(customer => new Customer { CheckProducts = customer.CheckProducts.Where(s => s.CheckType == checkType).ToList() }).SingleOrDefault();
return cus;
}
return null;
}
Почему _are_ вы пытаетесь построить нового клиента на основе существующего? 'Select (customer => new Customer ...'? Вы, в лучшем случае, запустите с клиентом _empty_, в нем будет только Checkproducts. Если вы не можете создать клиента без каких-либо других параметров, это всегда будет терпеть неудачу. – oerkelens
Можете ли вы показать мне более подробный ответ? Я новичок. :( – PhuongTT
Сколько еще вы хотите? Что произойдет, если вы измените свою строку, которая начинается с 'var cus =', на строку из моего ответа? :) – oerkelens