Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 针对简单数据模型和多对多关系的优化实体框架4查询_C#_.net_Sql_Entity Framework 4_Entity Framework 4.1 - Fatal编程技术网

C# 针对简单数据模型和多对多关系的优化实体框架4查询

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

我有一个简单的数据模型,我首先使用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 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技能了:)