问题标签 [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.

0 投票
2 回答
180 浏览

c# - Do I have to make a select query to create a relationship in Entity Framework?

I want to create a Blog object which has a relation between User. To create the relationship do I have to select User entity first, then set it to User property of Blog object? In Entity Framework samples suggest to set the User object to ViewState and retrieve it when you need to create the relationship, like a basic cache.

Is this necessary? Is there any other way to do this? (like in linq-to-sql setting the foreign keys only without select.)

Here my code sample;

Edit(To give another chance to question): Is there anything unclear or else?

0 投票
1 回答
15482 浏览

c# - 错误:无法删除对象,因为它在 ObjectStateManager 中找不到

试图在这里处理实体框架,但我遇到了一些障碍......我有一个 Get() 方法可以正常工作并且已经过测试,但是我的 Delete 方法不起作用:

但是我收到以下错误: 错误:无法删除对象,因为在 ObjectStateManager 中找不到它。

我运行了调试器,DeleteObject 中的对象是正确的……我错过了什么?谢谢你。

0 投票
3 回答
22500 浏览

entity-framework - 有没有办法将 .edmx 图从 VS2008 导出到 Visio?

有些人想看DB结构,没有VS,有没有办法做到这一点?或任何其他方式将其导出到屏幕截图之外(这是一个巨大的图表)。

谢谢你。

0 投票
24 回答
5717 浏览

sql - Linq to SQL 没有错过重点吗?ORM-mappers(SubSonic 等)不是次优解决方案吗?

我希望社区了解我对 Linq to Sql 和其他 ORM 映射器的一些想法。

我喜欢 Linq to Sql 以及用您的本地开发语言表达数据访问逻辑(或一般的 CRUD 操作)的想法,而不是必须处理 C# 和 SQL 之间的“阻抗不匹配”。例如,要为业务层返回与 ObjectDataSource 兼容的 Event 实例列表,我们使用:

如果我要使用旧的 SQL-to-C# 结构来实现它,我必须创建一个 Command 类,添加 EventID 参数(使用字符串来描述“@EventID”参数),将 SQL 查询字符串添加到命令类,执行命令,然后使用 (cast-type)nwReader["FieldName"] 提取每个返回的字段值并将其分配给我的 EventData 类的新创建实例的成员 (yuck)。

所以,就是人们喜欢 Linq/SubSonic/等的原因。并且我同意。

然而,从更大的角度来看,我看到了许多错误的事情。我的感觉是微软也看到了一些错误,这就是为什么他们正在杀死 Linq to SQL并试图将人们转移到 Linq to Entities。只是,我认为微软正在加倍下注。

那么,有什么问题呢?

问题是有些架构宇航员,尤其是在微软,他们看到 Linq to Sql 并意识到它不是一个真正的数据管理工具:仍然有很多事情你不能轻松地在 C# 中轻松完成,他们的目标是修复它. 您可以在 Linq to Entities 背后的雄心壮志、关于 Linq革命性的 博客文章甚至是LinqPad 挑战中看到这一点。

问题在于它假设 SQL 是问题所在。也就是说,为了减少轻微的不适(SQL 和 C# 之间的阻抗不匹配),微软提出了相当于太空服(完全隔离),而创可贴(Linq to SQL 或类似的东西)就可以了。

据我所知,开发人员非常聪明,能够掌握关系模型,然后在他们的开发工作中智能地应用它。事实上,我会更进一步地说,Linq to SQL、SubSonic 等已经太复杂了:学习曲线与掌握 SQL 本身并没有太大区别。由于在可预见的未来,开发人员必须掌握 SQL 和关系模型,我们现在面临学习两种查询/CRUD 语言。更糟糕的是,Linq 通常很难测试(你没有查询窗口),将我们从我们正在做的实际工作中移除了一层(它生成 SQL),并且对 SQL 结构(充其量)非常笨拙的支持,例如日期处理(例如 DateDiff)、“Having”甚至“Group By”。

什么是替代方案?就个人而言,我不需要像 Linq to Entities 这样的数据访问模型。我更喜欢简单地在 Visual Studio 中弹出一个窗口,输入并验证我的 SQL,然后按一个按钮生成或补充一个 C# 类来封装调用。既然您已经了解 SQL,您是否更愿意只输入如下内容:

并最终得到一个 EventData 类,A) 包含 EventID 和 Title 字段作为属性,B) 有一个工厂方法,该方法将“Location”字符串作为参数并生成 List<EventData>? 您必须仔细考虑对象模型(上面的示例显然没有处理该问题),但在消除阻抗不匹配的同时仍然使用 SQL 的基本方法对我很有吸引力。

问题是:我错了吗?微软是否应该重写 SQL 基础架构,以便您不必再学习 SQL/关系数据管理? 他们能以这种方式重写 SQL 基础架构吗?还是您认为在 SQL 之上的一个非常薄的层来消除设置参数和访问数据字段的痛苦就足够了?

更新我想将两个链接推广到顶部,因为我认为它们抓住了我所追求的重要方面。首先,CodeMonkey 指出了一篇题为“计算机科学的越南”的文章。 开始需要一段时间,但读起来非常有趣。其次,AnSGri 指出了 Joel Spolsky 最杰出的作品之一:泄漏抽象法则。它不完全是主题,但它很接近并且是一本很好的读物。

更新 2:我已经给 ocdecio 提供了“答案”,尽管这里有很多很好的答案,而“正确”答案的选择纯粹是主观的。在这种情况下,他的回答与我认为在当前技术状态下真正的最佳实践相一致。然而,这是一个我完全期望发展的领域,所以事情很可能会发生变化。我要感谢所有做出贡献的人,我投票给了我认为给出了深思熟虑的答案的每个人。

0 投票
1 回答
584 浏览

linq-to-sql - 使用 Linq 表达式树设计灵活的高级搜索的模式或技术

我希望在我的 ASP.NET/SQL Server 2005 应用程序中添加“高级搜索”功能。理想情况下,我希望它是表驱动的。例如,如果我的架构随着向要搜索的表中添加新列而发生变化,我希望 UI 将新列的添加反映为可搜索字段。我可以设想一些包含可搜索字段、它们的类型、相关查找等的控制表。

构建 UI 时可以参考这些表。我的问题在于创建动态 SQL 的最佳方法。一种方法是自己构造一个参数化的 SQL 语句。但我对 Linq 很感兴趣,不知何故,我认为 System.Linq.Dynamic 命名空间——以及Linq 表达式树——可能会提供更优雅/更强大的解决方案?

希望任何此类解决方案都适用于 Linq to Sql 或 Linq to Entities。我调查这条路径是否正确,或者这个问题空间是否真的不是表达式树的用例之一?

0 投票
7 回答
36672 浏览

asp.net-mvc - 如何在不首先加载实体框架模型的情况下删除它?

我很确定我已经在某处看到了这个问题的答案,但是由于我在 SO 或谷歌上进行了几次搜索都找不到它,所以我还是再问一次......

在实体框架中,删除数据对象的唯一方法似乎是

但是,这种方法需要先将对象加载到控制器,在这种情况下,首先要删除它。有没有办法删除仅引用其 ID 的业务对象?

如果有更聪明的方式使用 Linq 或 Lambda 表达式,那也很好。但是,主要目标是避免加载数据只是为了删除它。

0 投票
1 回答
473 浏览

.net - LINQ to Entities 并创建实体的新实例

我正在尝试在我们的应用程序中创建客户实体的新实例,但遇到了一些问题。这个实体有几个导航属性,每个都有自己的导航。特性。例如,每个客户实体都有一个地址实体,每个地址实体都有一个电话号码实体等。我还没有弄清楚如何为所有这些实体获取新数据集。我尝试了以下方法:

此时,我收到“对象引用未设置为对象的实例”错误,因为地址为空。我最初假设创建新的客户实体会自动为与之相关的每个实体创建一个新实例,但事实并非如此。有人可以提供一个代码示例来说明这应该如何工作吗?谢谢。

0 投票
5 回答
1994 浏览

c# - 到本地 Sql Express 服务器的并发 SqlConnection 和 EntityConnection

我将 Linq2Entity 用于我的大部分数据库操作。然而,对于数据库创建、表创建和初始数据插入,我使用纯 SQL 文件。因此我需要一个SqlConnection 和一个EntityConnection。不幸的是,实体框架开始抱怨 Sql Server 没有在管道的另一端进行侦听。

我不确定这里的问题是什么,这可能是由于用户实例化。清除 SqlConnection 的池或处置连接实例无济于事。

我正在使用的连接字符串如下:

“数据源=.\SQLEXPRESS;初始目录=dbname;集成安全=SSPI;”

更新:

我曾尝试将 EntityConnection 用于数据库维护目的,但遇到了麻烦。我不能使用 EntityConnection 来创建数据库和删除数据库。EntityConnection 不支持以下语法,但对 ms SQL express 的 SqlConnection 可以正常工作。

同样由于某种原因,EntityConnection 不允许我更改删除数据库所必需的数据库。恐怕我仍然需要 SqlConnection 来创建数据库和表..

SqlConnections 和 EntityConnections 有没有办法为本地 ms SQL express 数据库共存?

谢谢, 沃特

0 投票
1 回答
329 浏览

nhibernate - 当数据库发生变化时,你如何管理你的 ORM 层?

我理解不自动刷新 .dbml (Linq2Sql)、.edmx (Linq2Entities) 或 .hbm.xml (NHibernate) 的原因。在每个 ORM 解决方案中,如果您在数据库中有更改,则需要更新这些文件。如果你 100% 确定它不会破坏任何东西,有没有办法自动刷新这些文件?

我相当熟悉 RoR 中的迁移。.NET 世界中是否有可靠的迁移工具?

一般来说,您如何保持数据库设计的敏捷性,而不是一次又一次地手动重新创建这些映射文件?

如果此问题重复,请提供链接。我找不到一个。

0 投票
2 回答
8454 浏览

c# - 如何使用 Linq to ADO.NET 实体框架进行全文搜索 (FTS)?

现在 SQL Server 2008 内置了全文搜索。我希望用它来支持我的网站搜索。我也在考虑为我的 ORM 使用 ADO.NET 实体框架,但我想知道如何使用 Linq 到 ADO.NET 实体框架进行全文搜索(FTS)?

ADO.NET 实体框架中是否有任何支持,或者我是否坚持使用创建使用全文搜索谓词的函数的方法