我可以使用什么而不是包含?

Jen*_*ter 6 linq sql-server c#-4.0 entity-framework-4.1 ef-model-first

有没有替代使用Include热切载入实体?

我无法使用的原因Include是它似乎区分大小写.
请考虑以下示例:
我有两个表:

在此输入图像描述

在此输入图像描述

注意案例的区别.

当我想急于负载SagerStamkartotek我用Include,但Include不加载Stamkartotek:

在此输入图像描述

**更新1**

我注意到这种奇怪的行为 - 如果我使用Stamkartotek它的任何字段加入正确: 在此输入图像描述

但是,如果我去,只检索Stam_nr而不是整个对象的值- 它给了我A而不是a:

在此输入图像描述

迄今为止的研究:

  • EF团队知道这个问题 - 但决定不解决它.
  • 这个人只有使用代码优先才有同样的问题 - 没有找到解决方案

更新2
SQL生成Include:

FROM  [dbo].[Sager] AS [Extent1]
INNER JOIN [dbo].[Stamkartotek] AS [Extent2] ON [Extent1].[Klient_Stam_nr] = [Extent2].[Stam_nr]
WHERE 'jek15' = [Extent1].[Sags_nr]
Run Code Online (Sandbox Code Playgroud)

更新3
在单独的查询中加载它们,并让changetracker修复引用.它似乎也不起作用:
在此输入图像描述

Jua*_*uan 1

我没有这种情况下的所有信息,我认为您必须使用整数键来更新表的关系来建立关系。

例如,当使用 linq 时,当您调用 ToList() 或 First 时,查询将执行到数据库。如果您使用 Include,则查询将在调用其中某些操作时加载数据。

A 或 a 的问题可能是排序规则情况,请检查您的配置,某些排序规则会忽略数据的大小写。

我建议:使用整数键更新您正在使用的表,如果您想加载相关数据,请使用左外连接。有时最好使用旧的 tsql(您也可以在 linq 中进行左外连接)。