问题标签 [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 投票
5 回答
30034 浏览

entity-framework - 将实体框架与 SQL Compact 私有安装一起使用

我在带有 SQL Compact 的桌面应用程序中使用 Entity Framework 4。我想在我的应用程序中使用 SQL Compact 的私有安装,这样我的安装程序就可以安装 SQL Compact,而无需让用户进行第二次安装。它还避免了版本控制的麻烦。

我的开发机器安装了 SQL Compact 3.5 SP1 作为公共安装,所以我的应用程序在那里运行良好,正如人们所期望的那样。但它没有在我的测试机器上运行,它没有安装 SQL Compact。我收到此错误:

我知道有些人在使用 SQL Compact 私有安装时遇到了困难,但我已经使用了一段时间,我真的很喜欢它们。不幸的是,我的常规私人安装方法不起作用。我检查了我的 SQL CE 文件上的版本号,它们都是 3.8.8078.0,即 SP2 RC 版本。

以下是我在私人安装中包含的文件:

  • sqlcecompact35.dll
  • sqlceer35EN.dll
  • sqlceme35.dll
  • sqlceqp35.dll
  • sqlcese35.dll
  • System.Data.SqlServerCe.dll
  • System.Data.SqlServerCe.Entity.dll

我已经在我的项目中添加了对 System.Data.SqlServerCe 的引用,并且我已经验证上面列出的所有文件都被复制到安装机器上的应用程序文件夹中。

这是我在打开 SQL Compact 文件时用来配置 EntityConnectionStringBuilder 的代码:

我错过了一个文件吗?我是否缺少告诉实体框架在哪里可以找到我的 SQL Compact DLL 所需的配置步骤?为什么 EF 没有在安装机器上找到我的 SQL Compact DLL 的任何其他建议?谢谢你的帮助。

0 投票
2 回答
8314 浏览

.net - 如何在 .NET 4 中找出实体框架中的字段最大长度?

根据这个问题,EF v1 中没有内置方法来计算字段的长度。在 .NET 4 附带的实体框架中是否有内置的方法来执行此操作,如果有的话 - 怎么做?

0 投票
2 回答
784 浏览

c# - Entity Framework 4.0 如何确定实体的工厂方法需要哪些参数?

我正在使用 Entity Framework 4.0(VS 2010 Beta 2,不是 RC)。我可以为 EDM 建模并生成所需的数据库。当我要求 VS 为模型生成代码时,它会生成预期的 .designer.cs 文件。当我查看设计器生成的每个实体的工厂方法时,我注意到它并不包含实体的所有属性。

说工厂方法只包含不能为 null 的属性是否正确?情况似乎是这样,但我并不完全确定。

谢谢,

斯科特

0 投票
1 回答
2032 浏览

.net-4.0 - 我应该如何处理这个实体框架代码中的这个乐观并发错误,我有?

我在一些使用EF4的存储库模式项目中有以下伪代码。

很简单,但我遇到了运行时错误:-

ConcurrencyException:存储、更新、插入或删除语句影响了意外的行数 (0)。

现在,这就是正在发生的事情:-

  1. EF4 的两个实例同时在应用程序中运行。
  2. 实例 A 调用删除。
  3. 实例 B 在一纳秒后调用 delete。
  4. 实例 A 加载实体。
  5. 实例 B 还加载实体。
  6. 实例 A 现在删除了该实体 - 酷香蕉。
  7. 实例 B 尝试删除实体,但它已经消失了。因此,当它期望 1 .. 或类似的东西时,无计数或什么不是 0。基本上,它发现它应该删除的项目没有删除(因为它发生在几秒钟前)。

我不确定这是否像比赛条件或其他东西。

无论如何,我可以在这里做些什么让第二次通话不会崩溃?我可以把它变成一个存储过程..但我希望现在避免这种情况。

有任何想法吗?我想知道是否可以在调用 select 时锁定该行(并且仅该行)......强制实例 B 等待行锁被释放。到那时,该行已被删除,因此当实例 B 选择时,数据不存在.. 所以它永远不会删除。

0 投票
5 回答
28953 浏览

linq - EF 4:从集合中删除子对象不会删除它 - 为什么?

我使用实体框架 4,并且我与“级联删除”设置有父子关系。所以我希望当我从父级中删除一个子级时,当我调用 SaveChanges() 时,该子级会被删除。

相反,我得到一个错误:

System.InvalidOperationException 发生消息=操作失败:由于一个或多个外键属性不可为空,无法更改关系。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。

当我明确删除孩子(见注释行)时,一切都很好。我错过了什么?

0 投票
3 回答
24660 浏览

entity-framework - 在实体框架中向实体添加或条件

您可以在实体框架中为实体添加“或”条件吗?例如:

属性 1 == (1 或 2 或 3)

输入“1 || 2 || 3”或“1,2,3”或“1 or 2 or 3”的值时收到的消息返回此消息:

0 投票
2 回答
387 浏览

asp.net-mvc - 我应该在我的实体对象上为 Id 使用可空类型吗?

我当前的设置
我有一个带有一些属性的实体对象,其中一个int Id. 为了与数据库通信,我创建了一个存储库,其中包括以下方法:

(它是一个通用存储库,需要它TEntity是 a class,并且它实现了IEntity,这只是一个带有int Id属性的接口。)

我的问题:
现在,当我想创建一个新实体以添加到存储库时,我需要给它一个 id。但是,这不允许 EF 自动为我生成 id,因为它已经有一个值。

可能的解决方案:
我只能想到这两种可能性。

  1. 使Id属性可以为空
  2. 而是将 an 传递EntryInputModel给存储库,然后在那里进行映射。
    目前我EntryInputModel在我的控制器中绑定,并将其映射到Entry使用AutoMapper。如果我需要更改它,我还需要重新考虑我的项目中的依赖关系,因为...InputModel...ViewModel类目前仅可用于我的 Web 应用程序。

哪个更可取?有没有更多的方法来解决这个问题?

0 投票
2 回答
6063 浏览

entity-framework - 如何将 RowVersion 属性添加到 EF4 类

我正在使用 EF4 并通过实体设计图面创建类,然后从中生成数据库。我想为某些类添加一个属性以显示它们上次更新的时间戳。

我已经为它们添加了一个 Version 属性,但我不知道与它们关联的 .Net 数据类型,因此它们在生成时成为数据库中的 Timestamp 或 RowVersion。

有任何想法吗?

0 投票
5 回答
21875 浏览

entity-framework - 如何使用实体框架向数据库服务器询问当前日期时间?

我有一个带有 ModifiedDateTime 属性的实体,我想用数据库中的当前日期时间而不是执行应用程序的“应用程序”服务器来更新它。

每次我想在 SQL Server 2008 上更新或添加一个人到我的数据库时,我都想填写 ModifiedDateTime 文件。当我使用数据集并将我的 ModifiedDateTime 文件定义为 GetDate() 时,我不能像使用数据适配器命令一样更改更新查询。我创建了存储函数来返回 GetDate() 方法的值,但是我在导入过程时遇到问题,该过程返回值作为 int、string 或根本没有值,在我的例子中已经只是实体值作为 Person。这是为什么?

无论如何,如果您能帮助我从数据库服务器中检索当前的 DateTime,那将是非常有帮助的。

0 投票
7 回答
7849 浏览

linq - EF4 LINQ Include(string) 替代硬编码字符串?

有没有其他选择:

我想看到类似的东西:

避免硬编码字符串“资产”。