Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 使EF include方法生成内部联接的方法?_Entity Framework_Entity Framework 4 - Fatal编程技术网

Entity framework 使EF include方法生成内部联接的方法?

Entity framework 使EF include方法生成内部联接的方法?,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,使用EF4。我遇到的情况是,由于存在多对多表,带有显式联接的linq到EF查询无法工作。我不会为了适应EF而破坏数据库设计,所以我想使用include方法。然而,这似乎总是生成左外部联接,我需要内部联接(简单的context.Table1s.Include(“Table2”),其中表是1对1或1对多,这将说明问题) 有没有办法强制内部联接?很遗憾,没有办法让EF以某种方式生成查询 但是,当添加3个实体时,在设计器中只能看到其中的2个,第3个实体是“关系”。因此,如果您有实体people、book

使用EF4。我遇到的情况是,由于存在多对多表,带有显式联接的linq到EF查询无法工作。我不会为了适应EF而破坏数据库设计,所以我想使用include方法。然而,这似乎总是生成左外部联接,我需要内部联接(简单的
context.Table1s.Include(“Table2”)
,其中表是1对1或1对多,这将说明问题)


有没有办法强制内部联接?

很遗憾,没有办法让EF以某种方式生成查询

但是,当添加3个实体时,在设计器中只能看到其中的2个,第3个实体是“关系”。因此,如果您有实体people、books和loans,您应该只看到people和books,并且people应该具有名为books()的导航属性,该属性将所有与图书相关的(贷款)返回给此人

如果您希望也可以在导航属性上执行.Include(“Books”)。

您可以通过编写更好的LINQ来控制它
我问了一个非常有用的问题,得到了一个有用的答案,它提供了一个解决方案,因此我能够将查询转换为内部连接,从而大大加快了查询执行时间。特别是在被接受的答案中的第二个解决方案是我后来使用的解决方案,因为我真的不想使用eSQL,因为我真的不喜欢神奇的字符串。这会让我回到10年前。

如果您以不同的方式编写查询,当然可以,但是没有调用属性。请仅使用InnerJoin,您可以将其设置为true:P@Fabian:我想高效地编写LINQ与高效地编写其他代码是一样的。所以,为了写出好的LINQ,你必须更深入地学习它。HTML、CSS、C#、T-SQL等也是如此。如果您了解这项技术,您可以编写更好的代码。LINQ不仅仅是一个一站式工具店,在这里他们销售一刀切的锤子和螺丝刀。这是一家正规的工具店,出售不同用途的工具。你必须知道你在做什么来为自己购买最合适的工具。对另一个问题的答案使用linq to EF,这在我的情况下是无法使用的。正如你所说,我也不想使用eSQL。我们在这里讨论的是哪个版本的EF?