问题标签 [entity-framework-4]

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 投票
1 回答
2068 浏览

silverlight - Entity Framework 4 ste删除外键关系

我正在使用带有 Silverlight 的 EF4 和 STE。

我无法从我的主要实体中删除子记录。出于某种原因,如果我的主实体的外键是其主键的一部分,我可以删除子实体。

但如果不是,它们不会被删除。

我相信这些帖子解释了它: http: //mocella.blogspot.com/2010/01/entity-framework-v4-object-graph.html

http://blogs.msdn.com/dsimmons/archive/2010/01/31/deleting-foreign-key-relationships-in-ef4.aspx

我的问题是如何在我无权访问 DeleteObject() 函数的 Silverlight 中删除外键不属于其主键的子记录?

0 投票
12 回答
47668 浏览

entity-framework - Entity Framework 4 / POCO - 从哪里开始?

我已经编程了一段时间并且之前使用过 LINQ-To-SQL 和 LINQ-To-Entities(尽管在使用实体时它一直处于实体/表 1-1 关系上——即与 L2SQL 没有太大区别)

我一直在阅读有关控制反转、工作单元、POCO 和存储库模式的大量信息,并希望在我的新应用程序中使用这种方法。

我正在努力寻找一个清晰、简洁的 EF4 初学者指南,它不假定您了解 EF1。

我需要回答的具体问题是:

代码优先/模型优先?关于 EF4 的优缺点(即,如果我先编写代码,稍后更改代码并需要重新生成我的数据库模型,会发生什么情况 - 数据是否得到保留、转换或删除?)

假设我要先编写代码(我想看看 EF4 如何将其转换为 DB 模式),我该如何真正开始?我经常看到带有实体图的文章说“所以这是我的实体模型,现在我要......” - 不幸的是,我不清楚他们是否在设计器中创建了模型,将其保存到生成代码然后停止任何进一步的自动代码生成 - 或者 - 他们已经编码(POCO)?类并以某种方式将它们导入设计者视图?

我想我真正需要的是了解“魔法”的来源以及如何自己添加它,如果我不只是直接从数据库生成 EF 模型。

我知道这个问题有点含糊,但我不知道我不知道什么 - 所以任何输入/更正/澄清都值得赞赏。

不用说,我不希望有人坐在这里教我 EF - 我只是想要一些好的教程/论坛/博客/等等。对于完整的实体新手

0 投票
2 回答
1596 浏览

wcf - EDM -> POCO -> WCF (.NET4) 但是传输集合导致 IsReadOnly 设置为 TRUE

好的,这听起来可能有点“非正统”,但是……使用 VS2010 和新的 POCO t4 实体框架模板(演练:实体框架的 POCO 模板),我可以生成不错的 POCO。然后,我可以在 WCF 服务中使用这些 POCO(作为 DTO),基本上从 EDM 一直到客户端。这家伙在做什么(带有 EF 4.0 和 WCF 4.0 的 POCO),除了一切都是自动生成的。我知道实体和 DTO“应该”是不同的,但在这种情况下,我正在处理客户端和服务器,并且在模型中自动生成 DTO 有一些真正的优势。

我的问题是,当我传输具有关系的实体时,客户端生成的集合(ICollection)具有只读值集,因此我无法操纵该关系。例如,检索现有订单时,我无法将产品添加到 Products 集合客户端...... Products 集合是只读的。

我宁愿做一堆客户端“订单编辑”,然后发回更新的订单,而不是进行数十次服务器往返(例如 AddProductToOrder(product))。我也不想在 Entity 和 DTO 之间进行大量的转换。所以总而言之,这对我来说看起来不错……除了只读部分。

有没有解决方案,或者这对 SOA 颗粒来说太过分了?

0 投票
2 回答
7003 浏览

.net - ObjectContext.SaveChanges() 因 SQL CE 而失败

我正在创建一个使用 SQL CE 作为其数据存储的模型优先实体框架 4 应用程序。一切都很好,直到我调用ObjectContext.SaveChanges()保存对模型中实体的更改。此时,SaveChanges()引发 System.Data.UpdateException,内部异常消息如下所示:

SQL Server Compact 不支持服务器生成的键和服务器生成的值。

我对这条消息完全感到困惑。知道发生了什么以及如何解决它吗?谢谢。

这是异常转储:

0 投票
2 回答
2509 浏览

entity-framework - 生成实体密钥

我第一次对 Entity Framework 4 感到失望。事实证明,当与 EF4 一起使用时,SQL CE不支持自动生成的主键。我从 OnjectContext.SaveChanges() 收到 System.Data.UpdateException 并带有以下消息:

SQL Server Compact 不支持服务器生成的键和服务器生成的值。

所以,现在我必须为我的实体手动生成密钥。假设我想使用自动递增的整数键,那么在使用实体框架时生成和跟踪键的最佳方法是什么?谢谢你的帮助。

0 投票
4 回答
3578 浏览

entity-framework - SQL Compact/EF4 的 GUID 或 int 实体键?

这是我在使用 SQL Compact 的 EF4 实体键上发布的一个较早问题的后续内容。SQL Compact 不允许服务器生成的身份密钥,因此当对象添加到ObjectContext. 我的第一选择是整数键,上一个答案链接到博客文章,该文章显示了一种扩展方法,该方法使用Max运算符和选择器表达式来查找下一个可用键:

ObjectContext这是我对扩展方法的看法:如果我正在使用的对象具有未过滤的实体集,它将正常工作。在这种情况下,ObjectContext将包含数据表中的所有行,我将得到准确的结果。但如果实体集是查询过滤器的结果,该方法将返回过滤后的实体集中的最后一个实体键,不一定是数据表中的最后一个键。所以我认为扩展方法不会真正起作用。

此时,显而易见的解决方案似乎是简单地使用 GUID 作为实体键。这样,我只需要调用Guid.NewGuid()方法来设置 ID 属性,然后再将新实体添加到我的ObjectContext.

这是我的问题:是否有一种简单的方法可以从 EF4 获取数据存储中的最后一个主键(无需为此创建第二个主键ObjectContext)?还有什么理由不采取简单的方法并简单地使用 GUID?谢谢你的帮助。

0 投票
1 回答
415 浏览

asp.net-mvc - 更新 EF 4 中所有更改数据的最佳方法是什么?

我尝试创建一些方法,可以将任何更改的数据从更改的 Data 对象(此对象由 ASP.NET MVC 生成)更新为旧的 Data 对象(此对象是从 DBMS 中的当前数据中检索的),如下面的代码。

我尝试创建方法来保存任何更改的数据而不影响其他未更改的数据,例如以下源代码。

我不确定上述方法,因为它是更新数据的丑陋方法。从最近的错误中,我意识到如果您更新一些属性,如导航属性(来自其他表的相关数据),它将从数据库中删除当前记录。我不明白为什么会这样。但这对我来说非常危险。

那么,您对这个问题有什么想法可以确保我从 ASP.NET MVC 更新数据吗?

谢谢,

0 投票
1 回答
1870 浏览

entity-framework - 处理非跟踪自我跟踪实体的正确方法是什么?

自我跟踪实体。惊人的。

除非你做类似的事情

没有一个自跟踪实体正在跟踪(直到它们可能被反序列化)。

美好的。因此,我们必须认识到返回给我们的实体可能没有启用跟踪。

怎么办???

我尝试过的事情

对于给定的方法体:

以下所有实现FigureItOut均失败:

也不

也不

也不

也没有什么我能想到的,除了

  1. 从数据库中获取原始实体
  2. 手动比较每个属性
  3. 根据需要更新属性

确切地说,我应该对不跟踪自己的自我跟踪实体做什么?


小更新:

盲目地将实体标记为修改后的作品,但这似乎有点臭。在这种情况下我们能做到最好吗?

0 投票
1 回答
2688 浏览

.net - 在 .NET 3.5 SP1 上使用 EF 4

我在 Visual Studio 2010 RC 中使用了最新的 EF 4 位并且爱上了它。但是,我必须使用 .NET 3.5 SP1 (VS 2008) 开发一个小型 Web 应用程序才能工作……我想知道是否可以在 .NET 3.5 SP1/VS 2008 中以某种方式利用 EF 4。

问候。

0 投票
1 回答
882 浏览

entity-framework - 插入问题

因为这个问题我很沮丧,你不知道...

我有 2 个课程:PostComment。我使用 EF 4 POCO 支持,我的 .edmx 模型中没有外键列(评论类没有PostID 属性,但Post 属性)

有人能告诉我为什么下面的代码不起作用吗?我想为帖子创建一个新评论:

例外是:

无法将值 NULL 插入列“PostID”、表“Blog.Comments”;列不允许空值。插入失败。

...这个“PostID”列当然是 Posts 表的外键。

任何帮助将不胜感激!