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

c# - DbContext.SaveChanges() 是否按照添加到 DbSet 的顺序插入新记录?

我的问题假设简单插入到没有相关关系的表中。

在这种情况下,我的 DbRecord 实体是否总是按照我将它们添加到 DbSet 的顺序插入?他们似乎在我的测试中,但我可以依靠这个吗?

“各种不相关的操作”是指对同一上下文的不同、不相关的 DbSet 上的操作;插入、删除和更新实体(在我的例子中是 POCO)

我希望它们以准确的顺序插入,以便我可以使用 pk/identity 字段进行排序,但我还需要利用上下文围绕我的 context.SaveChanges() 提供的隐式事务。尽管就数据库模式而言,其他操作不相关,但条目本身本质上是有关正在执行的更新的日志条目,它们的顺序很关键。

如果上下文不能保证以相同的顺序插入记录,我将不得不在记录中添加一个日期时间字段,并自己处理回滚。

0 投票
2 回答
6966 浏览

asp.net - 从 Team City 运行更新数据库

我使用 Entity Framework 4.3 数据库迁移创建了一个新应用程序。使用“update-database”命令,从包管理器控制台中迁移工作得很好。

现在我想在每次使用 Team City 构建应用程序时运行数据库迁移,看起来我需要创建一个 powershell 脚本来执行此操作。

谁能告诉我一些关于如何让包管理器命令从命令行或 powershell 运行的说明?我只能找到有关如何通过包管理器控制台执行此操作的说明,我不知道如何从 Team City 构建步骤运行。

0 投票
2 回答
1591 浏览

entity-framework - 当属性受到保护或内部时,带有数据库迁移的 InverseProperty 不起作用

我有以下实体模型

这是我正在使用数据迁移的纯粹简单的多对多关系用户和标签。当我执行命令 Add-Migration 或 Update-Database 时,我收到以下错误“在类型 'Kigg.DomainObjects.Entities.User' 上的属性 'Tags' 上的 InversePropertyAttribute 无效。属性 'Users' 不是有效的导航相关类型“Kigg.DomainObjects.Entities.Tag”上的属性。确保该属性存在并且是有效的引用或集合导航属性。”

当我将 Tag 中 Users 属性的访问修饰符更改为 public 时,它工作正常,并且生成是我想要的。

从我的设计角度来看,我想隐藏 Tag.Users 属性并使其受保护或内部使用,以供内部使用,因为我不想将其公开给公共 API。

注意:我不是在这里讨论我的设计。我在问是否可以在 Tag.Users 受保护或内部使用时这样做?

0 投票
2 回答
4171 浏览

c# - 带有 MVC 的实体框架 4.3 不保存复杂对象

我用 Northwind 数据库做了一个小项目来说明这个问题。

这是控制器的操作:

context 在 Controller 的构造函数中被实例化为new DatabaseContext().

问题是我可以保存产品中的任何内容,但不能保存类别的更改。

对象 productFromForm 包含 productFromForm.Product.ProductID 内的新 CategoryID 没有问题。但是,当我Find()从上下文中检索对象的类别时,我有一个没有名称和描述的对象(都保持为 NULL)并且SaveChanges()即使属性的 ID 已更改,也不会修改引用Category

知道为什么吗?

0 投票
2 回答
3558 浏览

entity-framework - EF Code First 的预生成视图

最终部署到使用 Entity Framework Code First 和 MySql 构建的新站点后,一个令人烦恼的问题是缓存视图元数据时经常遇到的暂停。这似乎比应用程序池被回收的频率要高得多。(?)

我想对于一个流量源源不断的网站来说,这可能不会经常被注意到。对于一个流量不频繁的新站点,感觉就像每次我访问该站点时,呈现第一页都会有 4-5 秒的延迟。

所以我追踪了以下链接:

http://msdn.microsoft.com/en-us/library/bb896240.aspx

http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d

EF Power Tools CTP1 看起来很有希望,除了它似乎在 EF 4.3 中被破坏并且几个月没有更新。此外,我不确定该工具如何适应我们的自动化构建过程。

EF Power Tools 正在使用的 OptimizeContext() 或 WriteEdmx() 方法引发此错误

我最初认为这可能与 MySql 相关,但 EF Power Tools Q&A 部分的其他几个人正在报告它。

所以,简而言之,我如何首先为 EF 4.3 代码预生成视图,最好以一种可以插入自动构建过程的方式?

0 投票
1 回答
366 浏览

entity-framework-4.3 - Entity Framework .Add() 上的错误没有任何意义

我收到以下错误:

InnerException:{“无法将值 NULL 插入列‘UserId’,表‘database.dbo.bp_UserDetails’;列不允许空值。INSERT 失败。语句已终止。”}

问题是它UserId 值为 12。

我的表定义为

我的模型:

任何想法为什么我可能会收到此错误?

0 投票
1 回答
320 浏览

c# - 为什么不唤醒启用迁移?

我创建了 asp.net mvc3 项目,从 nuget 安装实体框架 4.3.1。

下一个

并得到错误:

System.Management.Automation.PSargumentException:找不到类型 [System.Data.Entity.Migrations.MigrationsCommands]:确保已加载包含此类型的程序集。
在 System.Management.Automation.MshCommandRuntime.ThrowTerminatingError (ErrorRecord errorRecord) 中
找不到类型 [System.Data.Entity.Migrations.MigrationsCommands]:确保已加载包含此类型的程序集。

0 投票
1 回答
6249 浏览

entity-framework - 如何使用实体框架代码优先迁移影响列顺序

我正在使用 Entity Framework 4.3 Code First 并尝试迁移功能。

如果我向我的类添加一个新属性,然后从包管理器控制台窗口运行 Add-Migration,我会得到如下信息:

我希望能够影响列的顺序,因为我不希望它只是附加到表中,而是放在特定的索引处。我想我可以将它添加到我的模型构建器配置中,例如:

但运行 Update-database 似乎没有使用它。这可以作为迁移来完成吗?

0 投票
1 回答
2664 浏览

visual-studio - 带有 NuGet 的实体框架 - init.ps1 中的导入模块错误

这是我在启动 VS2010 时在包管理器控制台中收到的完整错误消息:

Import-Module :未加载指定的模块“C:\Users\adam.assman\Project\packages\EntityFramework.4.3.1\tools\EntityFramework.psd1”,因为在任何模块目录中都找不到有效的模块文件。在 C:\Users\adam.assman\Project\packages\EntityFramework.4.3.1\tools\init.ps1:13 char:14

我已经使用 NuGet 在我的解决方案中的 DLL/ClassLibrary 项目上安装了实体框架。启动项目正在引用并使用此 DLL 项目。因此,我尝试使用在“默认项目”下拉列表中选择的 DLL 项目从控制台运行启动命令,但这给了我相同的错误消息。

我有 NuGet 版本 1.6.21215.9133(显然是 EF 版本 4.3.1)。

如果我尝试运行命令“Enable-Migrations -EnableAutomaticMigrations”,我会得到一个CommandNotFoundException,我想这是初始化错误的结果。我正在尝试使用本指南完成最简单的自动迁移形式:http: //blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-演练.aspx

0 投票
1 回答
1642 浏览

ef-code-first - 错误重映射 EF 代码优先 TPH 鉴别器

我正在尝试重新映射我的 TPH 持久对象层次结构的描述符列,如下所述:

http://msdn.microsoft.com/en-us/library/hh295845(v=vs.103).aspx

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

https://stackoverflow.com/a/6650064/141172

当我使用以下任一变体进行映射时:

或者

具有以下变化:

  • 使用字符串而不是整数,例如“1”
  • 删除 MyBase 的 Map 语句

我得到错误:

对于类型“DerivedA”,Map 被多次调用,并且至少有一个调用未指定目标表名称。

所有派生类都直接继承自 MyBase,并且所有派生类都包含在映射中。

我正在使用实体框架 4.3.1。

我究竟做错了什么?