问题标签 [entity-framework-6.1]

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 投票
0 回答
440 浏览

visual-studio-2012 - EF6 和 SQL Server CE 4.0 是否可以与 64 位的 VS2012 Express 一起使用?

当我尝试:

  1. 添加一个新的ADO Entity Data Model
  2. 选择EF Designer from database
  3. 选择一个现有的数据库连接,包括连接字符串,并将其保存到app.config
  4. 不要复制/修改连接(我尝试使用副本和项目中已有的数据库)

我收到一个错误

您的项目引用了最新版本的实体框架;但是,无法为您的数据连接找到与此版本兼容的实体框架数据库提供程序

我已经尝试了几个小时来让这个配置工作但没有成功。我正在使用以下内容:

  1. Windows 7 64 位
  2. Visual Studio 2012 Express(C# 应用程序)
  3. SQL Server Compact Edition 4.0 SP1 x64 ENU - 我无法在 64 位操作系统上安装 32 位版本。
  4. 2014 年 3 月 17 日实体框架 6.1.0
  5. EntityFramework.SqlServerCompact6.1.0

我曾多次尝试卸载并重新安装组件 3-5 次。

我在app.config文件中有以下内容(省略了该<entityFramework>部分):

我已经多次重建解决方案,没有错误。应用程序启动。

我已经重启了多次。

我已经确认该项目没有引用System.Data.Entity.

请告诉我我缺少一些简单的东西。

0 投票
2 回答
409 浏览

c# - 实体框架渴望加载关联的集合,但不会延迟加载它

我试图让对象的Studies属性Department延迟加载,但它只会在我急切加载时加载。我已经在没有结果DepartmentId的类中添加了 a ,Studyused和. 公共和私人二传手似乎没有区别(也不应该)。似乎没有任何效果。使用 EF 6.1。ICollectionISetvirtual

0 投票
1 回答
2372 浏览

c# - 实体框架 6.0.1 -> 6.1 更新,项目引用说“6.0.0.0”

我已经更新了我的解决方案以使用 EF 6.1Library Package Manager

接下来,我查看了待定更改列表,每个项目中的 EF 参考类似于以下几行:

为什么它Version=6.0.0.0以完全限定名称指定?

0 投票
1 回答
3210 浏览

asp.net-identity - 将 SimpleMembership 迁移到 Identity 2.0

这个问题已经演变,所以我更新了标题。

这是原始标题:Identity 2 UserManager.Find throws "Invalid object name 'dbo.ApplicationUser'" 错误

我正在从 SimpleMembership 转换为 Identity 2。我已经运行了转换脚本并重构了各种文件以供 Identity 使用。我可以构建和运行该应用程序,但是当尝试登录时,在 var user = UserManager.Find(vM.UserName, vM.Password);

账户控制人:

应用用户:

数据库上下文:

为什么用户管理器试图访问 dbo.[ApplicationUser](不存在)而不是 dbo.[AspNetUsers]?

更新 1: 我降级到 Microsoft.AspNet.Identity.EntityFramework 1.0 和 Microsoft.AspNet.Identity.Core 1.0,现在在调用 UserManager.Find 时出现“无效的对象名称 'dbo.IdentityUser'”错误。

更新 2:

我升级回 Identity 2.0,只是想看看备份和删除数据库会发生什么,然后先用代码重新生成它(启用迁移、更新数据库)。

而不是添加以下默认身份表:
AspNetRoles
AspNetClaims
AspNetUserLogins
AspNetUserRoles
AspNetUsers

它添加了这些表:
dbo.ApplicationUser
dbo.IdentityRole
dbo.IdentityUserClaim
dbo.IdentityUserLogin
dbo.IdentityUserRole

这可以解释为什么它正在寻找 ApplicationUser。我的配置强制使用这些名称而不是标准身份名称的原因是什么?我可能可以将我的迁移脚本更改为这些名称,但最终我会得到非标准的表名,这只会导致未来的混乱。如何配置以获取默认的身份表名称?

0 投票
1 回答
1267 浏览

asp.net-mvc-5 - EntityFramework.Extensions 6.1 批量删除抛出“序列包含多个元素”

尝试使用 EntityFramework.Extensions 进行删除,我有一个案例,我从标题中得到错误。这是场景:

这是映射:

这就是我删除行的方式:

我的设置有什么问题?当我这样做时它工作正常:

0 投票
2 回答
1729 浏览

c# - 实体框架——跨多个上下文在内存中缓存一个对象

我将 Entity Framework 6 与租户隔离的应用程序一起使用。我通过查看请求主机名来确定租户,然后在整个应用程序中使用它,将其设置在租户拥有的记录中,等等。

每个上下文都会在请求结束时处理。但是,由于租户查找非常频繁,我实际上每个主机名只执行一次,然后将对象放入内存中的只读字典中。

这里的问题是,如果您什么都不做,您最终会得到与请求一样多的重复租户记录(直到由于现在模糊的查询而开始抛出问题,无论如何)。

我最初通过在数据存储的构造函数中添加对 DbSet.Attach() 的调用并附加当前租户来解决此问题。但是,如果您同时有多个请求,则会收到一个异常通知,您不能将同一个对象附加到多个上下文:“一个实体对象不能被多个 IEntityChangeTracker 实例引用。” 由于我偶尔会通过访问页面太快而在我的开发机器上触发它,我无法想象它适合生产。

我尝试通过在保存之前添加此调用来更改内容:

好吧,那也行不通。我收到错误“无法定义两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。”

好的...那我该怎么呢?我要做的就是(就最终的 SQL 结果而言)最终得到具有对现有租户行 PK 的外键引用的各种行。

我发现引用 EF4 的一些东西建议了 Detach 方法,但我不确定我是否打算再调用它,因为它现在从 DbSet 的公共接口中隐藏了。如果我是,我不确定在哪里。当我第一次检索记录?

编辑:似乎确实有效的一个选项是转到上下文并根据缓存记录的 ID 提取租户记录。但是,现在我要无缘无故地查询数据库。

0 投票
0 回答
608 浏览

entity-framework - 如何调试模糊的实体框架“无法设置字段/属性”错误?

我是 EntityFramework 的新手,并且继承了一个项目,使用它来执行应该是非常简单的 CRUD 操作。

相反,当我尝试更新一列时,我在 .SaveChanges() 上收到以下错误:

无法在实体类型 System.Collections.Generic.HashSet`1[[Project1.Repository.table2, Project1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] 上设置字段/属性 table1。有关详细信息,请参阅内部异常。

InnerException 为空。

我正在尝试更新 table1,table2 有一个指向 table1 的外键,但我现在根本没有尝试更新该表。我的问题是,我能做些什么来找出这里的实际问题是什么?我真的不知道如何在这方面取得进展。在这一点上,我的选择似乎是删除 EF 模型并尝试自己重新构建它,或者只是将整个东西装箱并使用 SQL 来完成它。

0 投票
1 回答
856 浏览

c# - Fluent API 支持多语言数据库

我在一个多语言网站(MVC 5,EF 6.1)上工作。为了支持某些字段的多种语言,我将表格分成两部分。一种用于与语言无关的数据,另一种用于与语言相关的数据。

例如我的产品表是(简化的):

所以对于上面的结构,我创建了 2 个实体类和一个 ModelBuilder 映射:

一切正常,EF 用上面的字段创建了我的数据库。此时我有点糊涂了。CRUD 操作的最佳方式是什么?

如何查询数据?我刚刚在下面写了这段代码,但我不知道这是否是最好的方法:

使用这种技术,我可以获得非常简单的值:

如何创建新记录?我的测试代码是:

上面的代码工作正常,但我不确定这是否是处理多语言(拆分表)数据库结构的最佳方法。EF 或 FluentAPI 中是否有任何基础设施可以更简单、更好地处理这个问题?有什么模式或约定吗?如果我有多个翻译表,我应该使用抽象基类来处理这些操作吗?我应该出于任何原因在这里使用泛型吗?

0 投票
1 回答
6623 浏览

entity-framework - 实体框架代码先迁移保留现有数据

我正在使用 EF 6.1,并在现有数据库中使用代码优先方法和生产环境中的数据。

是否可以迁移模型更改并保留现有客户的数据?

0 投票
0 回答
280 浏览

c# - 覆盖从数据库生成的 edmx 模型

使用 EF Database First 时,很容易从数据库中选择表/存储过程,并将它们添加到模型中。

但是,我想自定义从数据库更新模型的方式,以自动设置某些功能,并节省用户的工作量/错误。

需要明确的是,我不是在谈论在 tt 文件生成时进行更改,而是实际上当通过向导从数据库中填充 edmx 时。

我感兴趣的具体行动是:

  1. 根据严格的约定,在添加表时自动将一些存储过程添加到模型中。
  2. 将这些存储过程设置为PrivatePublic默认情况下)
  3. 自动将这些存储过程映射到表的 CRUD 操作。

似乎有几个选择:

  1. 覆盖默认模型生成,以便在添加/更新表时进行更改。
  2. 添加表后更新 edmx 的 XML(我可以自动触发吗?)

我宁愿选择选项 1,因为它会更干净,但还没有找到实现这一目标的机制。(我目前正在处理 CodePlex 的 EF 代码!)

我坚持选项2吗?