问题标签 [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.
c# - DbContext.SaveChanges() 是否按照添加到 DbSet 的顺序插入新记录?
我的问题假设简单插入到没有相关关系的表中。
在这种情况下,我的 DbRecord 实体是否总是按照我将它们添加到 DbSet 的顺序插入?他们似乎在我的测试中,但我可以依靠这个吗?
“各种不相关的操作”是指对同一上下文的不同、不相关的 DbSet 上的操作;插入、删除和更新实体(在我的例子中是 POCO)
我希望它们以准确的顺序插入,以便我可以使用 pk/identity 字段进行排序,但我还需要利用上下文围绕我的 context.SaveChanges() 提供的隐式事务。尽管就数据库模式而言,其他操作不相关,但条目本身本质上是有关正在执行的更新的日志条目,它们的顺序很关键。
如果上下文不能保证以相同的顺序插入记录,我将不得不在记录中添加一个日期时间字段,并自己处理回滚。
asp.net - 从 Team City 运行更新数据库
我使用 Entity Framework 4.3 数据库迁移创建了一个新应用程序。使用“update-database”命令,从包管理器控制台中迁移工作得很好。
现在我想在每次使用 Team City 构建应用程序时运行数据库迁移,看起来我需要创建一个 powershell 脚本来执行此操作。
谁能告诉我一些关于如何让包管理器命令从命令行或 powershell 运行的说明?我只能找到有关如何通过包管理器控制台执行此操作的说明,我不知道如何从 Team City 构建步骤运行。
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 受保护或内部使用时这样做?
c# - 带有 MVC 的实体框架 4.3 不保存复杂对象
我用 Northwind 数据库做了一个小项目来说明这个问题。
这是控制器的操作:
context 在 Controller 的构造函数中被实例化为new DatabaseContext()
.
问题是我可以保存产品中的任何内容,但不能保存类别的更改。
对象 productFromForm 包含 productFromForm.Product.ProductID 内的新 CategoryID 没有问题。但是,当我Find()
从上下文中检索对象的类别时,我有一个没有名称和描述的对象(都保持为 NULL)并且SaveChanges()
即使属性的 ID 已更改,也不会修改引用Category
。
知道为什么吗?
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 代码预生成视图,最好以一种可以插入自动构建过程的方式?
entity-framework-4.3 - Entity Framework .Add() 上的错误没有任何意义
我收到以下错误:
InnerException:{“无法将值 NULL 插入列‘UserId’,表‘database.dbo.bp_UserDetails’;列不允许空值。INSERT 失败。语句已终止。”}
问题是它UserId
的值为 12。
我的表定义为
我的模型:
任何想法为什么我可能会收到此错误?
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]:确保已加载包含此类型的程序集。
entity-framework - 如何使用实体框架代码优先迁移影响列顺序
我正在使用 Entity Framework 4.3 Code First 并尝试迁移功能。
如果我向我的类添加一个新属性,然后从包管理器控制台窗口运行 Add-Migration,我会得到如下信息:
我希望能够影响列的顺序,因为我不希望它只是附加到表中,而是放在特定的索引处。我想我可以将它添加到我的模型构建器配置中,例如:
但运行 Update-database 似乎没有使用它。这可以作为迁移来完成吗?
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
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。
我究竟做错了什么?