问题标签 [linq-to-entities]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - 自动加载 linq2entities 中的关系
当我的模型中的两个实体之间存在关系时:
[群组成员] (*) ----- (1) [用户]
并尝试从与 LINQ 的关系中选择项目:
从 _user.GroupMember 中的实体选择实体
除非我首先使用以下语句加载关系,否则我总是得到一个空结果:
_user.GroupMember.Load()
有没有办法避免加载这样的关系?
entity-framework - 在实体框架中对可为空的外键字段进行选择的方法是什么?
我有一个类别表,它有一个可以为空的 parentId 字段的外键。在 Entity-Framework 中创建关系时,生成的实体没有任何关系字段。我的意思是,在我的示例中,当我在 Category 表中创建 parentId-Id 关系时,生成的 Category Entity 将具有一个 int 类型的 Id 属性和一个 Category 类型的 ParentCategory 属性,并且没有 ParentId 属性。这使我的查询更加困难。
所以,当我想选择一个类别的子类别时,我遇到了麻烦。我使用下面的方法;
但这不起作用,当我想选择根类别时。这样做的方法是什么?
顺便说一句,我想知道是否有一种方法可以生成像 Linq to Sql 这样的实体,具有 int 类型的 Id 属性、int 类型的 ParentId 和 Category 类型的 ParentCategory 属性。
.net - 如何从 Linq 2 SQL 转移到 Linq 2 实体?
我想为想要从 linq2sql 迁移到 linq2entities 和 ADO.net 实体框架(此处称为 L2E)的人提供参考。我不想讨论这两个哪个更好。我只想为想要从一个过渡到另一个的人创建一个这两者之间的差异列表。
基本的东西很简单:删除 linq2sql 数据类,添加 ado.net 模型(从数据库创建)。将“实体”重命名为前数据上下文的名称。
现在,差异。例如,要在 L2S 中持久(保存)更改,我会使用:
在 L2E 中,这必须更改为:
第二个示例,要在 L2S 中插入一条新记录,您将使用:
在 L2E 中,这必须更改为:
对于其他代码片段,我将跳过 using (...) 部分和 SubmitChanges/SaveChanges,因为它每次都是相同的。
将更改的对象附加到 L2S 中的数据上下文/模型(使用时间戳):
在 L2E 中:
将更改的对象附加到 L2S 中的数据上下文/模型(使用原始对象):
在 L2E 中(MSDN - 将更改应用到分离的对象):
要删除 L2S 中的记录:
在 L2E 中:
要在 L2S 中显示创建的用于调试的 SQL 命令:
在L2E 中,您可以显示查询的 SQL(感谢 TFD):
遗憾的是,我发现无法输出为调用 SaveChanges() 生成的 SQL - 为此您需要使用SQL 分析器。
如果不存在 L2S ,则从方案创建数据库:
在 L2E 中:
要对 L2S 中的数据库执行 SQL 命令:
在 L2E 中:
要在 EF 中对数据库执行 eSQL 命令(请注意,eSQL 尚不支持 DDL 或 DML(更改、插入、更新、删除)命令):
命令文本在 Entity SQL 中,与 T-SQL 不是 100% 相同。
(感谢 TFD)
如果您在同一连接上需要 DDL/DML 命令,您可能需要自己创建数据库连接,使用您自制的 db 连接连接 EF,然后将此连接用于您的 DML 命令。不好看,自己看吧:
要为新创建的 L2S-Class 提供默认值,请覆盖部分方法 OnCreated:
在 L2E 中,您可以为表类创建一个默认构造函数:
以下示例是关于两个表之间的 1:n 关系。我在这里用 SQL 定义表,所以你知道我在写什么:
在 L2S 中使用相应的 MySubTable 将记录插入到 MyTable中:
L2E 中非常相似:
在 L2S中搜索 subtable,您可以使用:
在 L2E 中,您无法访问关系列:
(当然你也可以使用)
(奇怪的旁注:_searchForTable 不需要附加到 EF 才能工作。)
杂项说明:
在 L2S 中,我可以在 LINQ 中使用其他函数。如果我在 L2E 中使用自定义函数,我会得到 NotSupportedException。所以,而不是
在 L2E 中需要使用
虽然 L2S 可以从数据库中读取自动生成的值,例如自动生成的 ID,但在 L2E 中,这似乎只能使用 sql 类型标识。
(当我偶然发现它们或有人在答案中添加它们时,我将在这篇文章中收集更多差异)
一些链接,可能有帮助:
- Transact-SQL 和 Entity-SQL 之间的区别
- NET - ADO.NET Entity Framework 和 LINQ to Entities
- Mike Taulty 关于 Disconnected LINQ to Entities(适用于 L2E 的 beta 2)
sql - 实体框架绕过不受支持的方法
ADO.NET EF 不支持 Math.Pow 和 Math.Log 之类的东西,所以我想知道如何解决这个问题。我需要能够对使用 ADO.NET EF 的计算值使用 ORDER BY。
entity-framework - 模拟实体框架模型?
是否可以模拟 EF 模型,以便我可以测试使用模型类的代码,而无需摆脱遍布整个项目的 LINQ to Entities 代码?或者是否有必要为模型建立一个测试数据库来代替?
c# - 如何创建 LINQ 表达式树以选择匿名类型
我想使用表达式树动态生成以下选择语句:
我已经弄清楚如何生成
但我似乎找不到可以让我在我的选择 lambda 中指定多个属性的构造函数/重载。
linq-to-entities - 跨多个数据库的 ADO.Net 实体框架
在 Linq2Sql 中,您只需将数据库名称添加到源即可将数据上下文连接到多个数据库。
有没有办法在 Linq 2 Entities / ADO.net Entity Framework 中实现这一点?可以将某处的数据库名称添加到表名中吗?
我试图将“架构”从 dbo 更改为MyDatabase.dbo,但 EF 将其封装到
将 'Schema' 更改为'MyDatabase].[dbo'之类的诡计将被转义为
(注意这两个]]
。)
sql-server - 如何避免 MSDTC?
也许这只是一个愚蠢的想法,这就是为什么我把它扔在这里:
我正在创建一个应用程序,使用一个数据库存储基本数据和当前数据(客户、文章、库存、未结发票……),每年使用一个数据库存储存档数据(旧发票、库存移动……)。
只有一个讨厌的小问题:MSDTC。大多数事务只涉及一个数据库,但少数事务涉及当前数据库和一个归档年份。由于所有数据库都在同一台服务器上退出,因此这可能是跨两个数据库的简单事务。
然而,Linq to entity 迫使我为每个数据库创建一个单独的连接,而这里 MSDTC 启动,要求 a) 安装 b) 确实减慢了整个过程。
恼人的!
有没有办法让两个 ADO.Net 实体框架模型使用相同的连接,两者都有自己的当前数据库?
我已经尝试在 EF Schema 中指定数据库,但 EF 不喜欢这样并阻止它。
很烦人。也许我应该将所有表移动到一个数据库中,但是当尝试分离数据以进行备份和加速时,这会很痛苦。
linq-to-entities - 使用关联创建新的 LINQ to Entities 对象
我试图弄清楚如何使用 LINQ to Entities 将新记录添加到具有另一个表的外键的表中。我将尝试解释:
假设我有一个带有两个表的简单数据库。例如,让我们调用一个 LibraryItem 和另一个 LibraryItemStatus。LibaryItem 具有指向 LibraryItemStatus 表的外键,因此可以为项目分配状态。
我的问题是如何使用 LINQ To Entities 创建新的 LibraryItem 并将其与状态相关联?我下面的代码一定是错误的,但我找不到任何帮助的例子。
c# - 我可以像使用 LINQ to SQL 一样使用实体框架吗?
我已经开始尝试使用 LINQ to SQL,我所做的基本上是使用 LINQ 映射装饰器创建类 - 从而选择我想要合并到我的类中的 db 表模式的哪些部分。
一个简单的例子:
由于项目限制(处理模式更改的方式以及因为存在现有的数据库模式并且它有点过于有机和不严格),我没有使用并且不愿意求助于建模工具
有没有办法让实体框架具有这种灵活性,而不必包含架构信息文件和/或许多不同的代码文件?
然后我是否还可以创建“使用”多个基础表的类?
谁能指出我有关此的文档?