gpt4 book ai didi

sql-server - 我可以使用什么来代替 Include?

转载 作者:行者123 更新时间:2023-12-02 19:45:21 25 4
gpt4 key购买 nike

除了使用 Include 来预先加载实体之外,还有其他选择吗?

我无法使用 Include 的原因是它似乎区分大小写。
考虑以下示例:
我有两张 table :

enter image description here

enter image description here

注意大小写的区别。

当我想立即加载 SagerStamkartotek 时,我使用 Include,但 Include 却没有' t 加载 Stamkartotek:

enter image description here

** 更新 1 **

我注意到这种奇怪的行为 - 如果我使用 Stamkartotek 中的任何字段,它会正确连接: enter image description here

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

enter image description here

迄今为止的研究:

  • EF 团队 knows关于这个问题 - 但决定不解决它。
  • This guy仅使用代码优先时遇到同样的问题 - 尚未找到解决方案

更新2
使用 Include 生成 SQL:

FROM  [dbo].[Sager] AS [Extent1]
INNER JOIN [dbo].[Stamkartotek] AS [Extent2] ON [Extent1].[Klient_Stam_nr] = [Extent2].[Stam_nr]
WHERE 'jek15' = [Extent1].[Sags_nr]

更新3
在单独的查询中加载它们,并让 Changetracker 修复引用。它似乎也不起作用:
enter image description here

最佳答案

在外键周围创建一个具有 LOWER 的 View ,以确保读取始终向 EF 返回相同的大小写。

并使用存储过程进行插入和删除

您可以在此处跟踪要解决的问题并投票:

String comparison differences between .NET and SQL Server cause problems for resolving FK relationships in the state manager

关于sql-server - 我可以使用什么来代替 Include?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20068379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com