问题标签 [entity-framework-4.3]

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 回答
1353 浏览

c# - EF 4.3 Code First 使用现有数据库时的一对一关系

我的数据库中有两个表,它们具有一对一的关系。我想使用代码优先方法通过 EF 访问它们。我已经编写了这样的 POCO 类:

而且我还描述了 OnModelCreating 中这些类之间的关系,如此处所述。所以看起来是这样的:

但是当我运行应用程序时,我在尝试访问用户表时遇到了这个异常:

列名“User_Id”无效

尽管当我让 EF 使用这两个表自己创建一个新数据库时,它会创建一个与我的结构相同的数据库并且它可以工作。

我使用的是 EF 4.3(我也尝试过 4.2)和 MS SQL 2008。我做错了什么?我不敢相信这是实体框架的错误。

0 投票
1 回答
1254 浏览

entity-framework - Entity Framework 4.3 代码中的错误 - 索引已存在

在以前的版本中一切正常,但现在在 4.3 中出现此错误:

EntityFramework.DLL 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理

附加信息:操作失败,因为表 'Users' 上已存在名称为 'IX_Id' 的索引或统计信息。


User 表有一个 Id 属性并且是主键,但我没有在其他任何地方使用代码或属性来创建附加索引?

用户模型:

它在我的 OnModelCreating(DbModelBuilder modelBuilder) 中失败了

更新:刚刚通过使用 WithRequiredPrincipal 而不是 WithRequiredDependent 来修复它。不知道为什么这在 4.3 中有所不同

0 投票
3 回答
1282 浏览

c# - 为什么 EF 在 SaveChanges 上读取我未更改的对象?

作为 Entity Framework Code First 测试的一部分,我正在测试更改跟踪。在一个小型测试数据库中,我在一个表中有两辆汽车,我对其运行测试方法:

我已将跟踪输出添加到类的TopSpeedBrand属性的 getter 和 setter 中,Car以查看它们是如何被访问的。TopSpeed是一个int?并且BrandBrand实体的导航属性。运行上面的代码会得到下面的输出。

对象的类型是用于更改跟踪的 EF 动态代理。尽管如此,当调用SaveChanges()未更改的 XYZ987 汽车的属性时,仍会被读取。我认为更改跟踪会导致 EF 仅读取已知更改的对象,还是我遗漏了什么?我还需要添加其他内容以启用更改跟踪吗?

0 投票
1 回答
205 浏览

unity-container - 实体框架上下文处理陈旧数据

我正在使用 Unity 注入上下文并使用以下生命周期管理器...

  • 第一个请求到第一页:显示值。
  • 对第二页的第一个 Web 请求:更新值。
  • 对第一页的第二个 Web 请求:显示旧值。
  • 对第二页的第二个 Web 请求:显示新值。

我必须重新启动 VS 开发服务器才能让第一页显示新值。

那么上下文a)如何存在于页面请求之间并且b)特定于页面?

0 投票
1 回答
1190 浏览

entity-framework - EF Code First 4.3 DbContext 生命周期?

我已经搜索过,但没有找到关于这个主题的太多内容。有没有人看到 DBContext 的简洁“操作顺序”,包括实例化、验证、保存等内容?我主要是好奇,因为在我的 EF 4.3 Code First 上下文中使用 LINQPad 时,它在我自己的任何查询之前运行两个查询。一个与我理解的迁移历史有关,因为我们正在使用 EF Migrations 并且它试图查看它是否需要自动更新,另一个是我不理解的 EdmMetadata 表,因为它听起来像如果我们使用 EFMigrations,则不需要。

我对为什么调用一个查询缺乏了解,这让我想知道 DBContext 生命周期的其他部分是否有我不知道的可能有助于理解/覆盖。提前致谢!

0 投票
2 回答
609 浏览

database-migration - 设计完整的数据库迁移堆栈

在开发过程中,我喜欢像 Entity Framework 4.3 Migrations 这样的框架的想法(尽管我需要它来处理 sql 脚本而不是 Migration 类)使所有开发人员数据库保持最新。有人进行更新以获取最新源,他们尝试运行应用程序并收到错误,他们需要将数据库更新到最新迁移(或让迁移自动发生)。迁移文件带有时间戳,因此开发人员不必担心将两个文件命名为相同或文件需要执行的顺序。

当我准备构建 WebDeploy 部署包时,我希望该包包含将生产数据库移动到最新数据库版本所需的脚本。所以不知何故,MSBuild 或 WebDeploy 需要决定必须打包哪些脚本。对于部署,我不希望应用程序尝试像 EF 提供的那样更新自身。我想要么将包交给 IT 部门,要么通过部署服务器进行自动部署。

我的一些问题是:

  1. EF 4.3 是否可以使用 sql 脚本而不是 DBMigration 类来满足我的开发需求(我已经将它用于我的 ORM,所以如果可以的话会很好)?

  2. MSBuild 或 WebDeploy 是否理解数据库迁移的概念(例如,它是否识别 EF.4.3 migrationHistory 表)或者我是否必须确保只提供它需要运行的脚本,以便将我的 prod db 带到最新的迁移?手动决定应该打包哪些脚本不是我想做的事情,是否有理解迁移的 MS WebDeploy 扩展?

  3. 我的担忧和想法有效吗?我只是在研究这个东西,所以我真的不知道。

0 投票
1 回答
10004 浏览

c# - Entity Framework 4.3 代码首先使用相同的表进行多对多

我有一个模型

我希望 EF 会使用自动创建的 TownResidents 和 TownMayors 表创建两个多对多关系。我似乎找不到必要的约定或明确的注释来获得这个结果。

相反,我在 Town 表中获得了两个 FK UserId,在 User 表中获得了两个 FK TownId。

任何想法如何让 EF 在两个多对多关系中看到这些?

谢谢

0 投票
4 回答
12968 浏览

c# - 实体框架(4.3)寻找单数而不是复数(当实体名称以“s”结尾时)

这是我的情况:我已经在 ASP.NET MVC 3 应用程序上工作了一段时间。它有一个数据库(由一个 db 项目构建;我将首先使用 db),为此我有一个 edmx 模型,然后是一组 POCO。我的实体在数据库中有复数名称,而 POCO 有单数名称。一切都很好地映射没有问题。

或者习惯了,直到我添加了一个新表(称为 TransactionStatuses)。现在所有旧实体仍然有效,但新实体却不行。当我尝试将它与相关实体一起加载时:

我明白了

无效的对象名称“dbo.TransactionStatus”。

我什至做了一个更简单的测试:

= 结果相同。

我已经从 db 更新(甚至重新创建)edmx 并反复检查它,试图找出 dbo.TransactionStatus* es * 的映射有什么不同,这会使整个事情出错。

如果有人能指出我的修复方向,那就太好了。

PS关闭复数不是一种选择,谢谢。

更新:我想通了-我的回答如下。

0 投票
1 回答
2225 浏览

entity-framework - Entity Framework 4.3 Code First 无法创建 Datetime2?

我将我的数据库模型配置为使用 datetime2 格式,而不仅仅是 datetime。生成数据库时,所有日期列都是 datetime 而不是 datetime2。这是我的列配置代​​码;

我可以发誓这在 EF 的早期版本(例如 4.1)中有效,但我不明白为什么它现在不起作用。我正在连接到 SQL Server 2008 R2...

任何帮助,将不胜感激!

谢谢你!

0 投票
1 回答
4315 浏览

c# - Entity Framework 4.3 - TPH 映射和迁移错误

我正在使用 Entity Framework 4.3 代码优先和手动迁移。我正在尝试映射使用两个自定义鉴别器字段的 TPH(按层次结构表)设置。一个用于鉴别器本身,另一个用于软删除(很像 NH 类映射中的“where”选项)。完全相同的设置在另一个在 EF 4.2 上运行的项目中工作得很好。

尝试使用 NuGet 控制台中的“add-migration”命令添加迁移时出现错误。我已经尝试了定义表名的所有组合 - 类上的属性、“OnModelCreating”方法、EntityTypeConfiguration 类等。我以前不涉及复杂层次结构映射的迁移工作得很好。

EF 4.3 中是否有一些我偶然发现的重大变化?

编码:

错误:

米克尔