C# 针对简单数据模型和多对多关系的优化实体框架4查询
我有一个简单的数据模型,我首先使用EF4.1代码(但问题似乎与任何EF4方法有关)作为ORM来存储和检索数据。 该模型看起来有点像:C# 针对简单数据模型和多对多关系的优化实体框架4查询,c#,.net,sql,entity-framework-4,entity-framework-4.1,C#,.net,Sql,Entity Framework 4,Entity Framework 4.1,我有一个简单的数据模型,我首先使用EF4.1代码(但问题似乎与任何EF4方法有关)作为ORM来存储和检索数据。 该模型看起来有点像: public class Customer { public int CustomerId { get; set; } public string Name { get; set; } public virtual List<Product> Products { get; set; } } public class Prod
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public virtual List<Product> Products { get; set; }
}
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public virtual ICollection<Event> Events { get; set; }
public virtual ICollection<Customer> Customers { get; set; }
}
public class Event
{
public int EventId { get; set; }
public string Name { get; set; }
public virtual List<Product> Products { get; set; }
}
但这似乎是一种反模式。问题是:
如何编写查询以更有效的方式解决此问题?(可能是linq,但即使是本机SQL也会有所帮助)您可能正在寻找这样的查询:
var query = from ev in context.Events
select new
{
Event = ev,
AffectedCustomers = (from pr in ev.Products
from cu in pr.Customers
select cu).Distinct()
};
您可能正在寻找如下查询:
var query = from ev in context.Events
select new
{
Event = ev,
AffectedCustomers = (from pr in ev.Products
from cu in pr.Customers
select cu).Distinct()
};
谢谢,这似乎是我想要的。。。我想是时候提高l2e技能了:)谢谢,这似乎正是我想要的。。。我想是时候提高l2e技能了:)