问题标签 [ef-code-first]

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 投票
1 回答
192 浏览

entity-framework-4 - 代码优先:如何在源类/表也是目标的情况下创建多对多关系?

有人可以发布一个示例,说明如何使用代码优先创建源类也是目标类的多对多关系吗?

就像是:

玩具 * <-----> * 玩具

谢谢你。

努诺·塞尼卡

0 投票
1 回答
2309 浏览

entity-framework-4 - 使用 EF CPT5 进行域建模和映射

我正在尝试建模一个包含照片集的相册。每个相册都有一组照片和一张拇指照片。这就是我所拥有的,但 EF 似乎不喜欢它。我正在使用 EF CPT5

型号

映射代码:

语境

数据库工厂

我是否正确建模和映射?我需要能够在不指定缩略图的情况下创建新专辑。截至目前,一切正常,直到我尝试添加缩略图,然后我收到此错误:

System.Data.UpdateException:无法确定相关操作的有效排序。由于外键约束、模型要求或存储生成的值,可能存在依赖关系。

在 System.Data.Mapping.Update.Internal.UpdateTranslator.DependencyOrderingError(IEnumerable`1 余数) 在 System.Data.Mapping.Update.Internal.UpdateTranslator.ProduceCommands() 在 System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager, IEntityAdapter 适配器) 在 System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options) 在 PostHope.Infrastructure.DataAccess.Database.Commit() 在 Database.cs:第 74 行在 PostHope.Infrastructure.DataAccess.IntegrationTests.BuildDatabase BuildDatabase.cs 中的 .Add_test_data_to_database():第 252 行

任何帮助都会很棒!

0 投票
2 回答
7855 浏览

c# - 如何在按层次结构 (TPH) 映射的表中共享通用列名

我正在使用实体框架 4 CTP5 代码优先方法,并且我有一个按层次结构表 (TPH) 映射。我在层次结构中的一些类具有共同的属性。

默认约定将其映射到以下列:

  • ID
  • 第1条
  • 第二条
  • 客户1
  • 客户2
  • 制造商
  • 命令
  • 类型

我想让 EF4 共享通用属性,最终得到以下结果:

  • ID
  • 文章
  • 顾客
  • 制造商
  • 命令
  • 类型

除了减少列数之外,这还具有能够基于 Article 搜索记录的优势,而无需知道哪些类型确切具有 Article 属性。

我尝试将每个公共属性映射到同一列:

但这引发了以下异常:

指定的架构无效。错误:(36,6):错误 0019:类型中的每个属性名称必须是唯一的。已定义属性名称“文章”。

有谁知道如何绕过这个验证规则?

0 投票
1 回答
386 浏览

.net - EF4 Code First 绑定到成员角色的用户

首先玩代码,并希望跟踪与某些项目相关的用户状态。举个例子,假设我有

我是通过某种魔法直接使用 MembershipUser,还是制作类似

0 投票
2 回答
7340 浏览

c# - EF4 Code First CTP5:种子方法不再有效

我的 EF Code First CTP4 工作正常,我今天安装了 CTP5。现在,重新填充我的数据库时出现异常。

这是我的模型:

这是在 Global.asax.cs 中调用的代码

当它在上下文中点击 SaveChanges 时,我得到了这个异常:

检测到有冲突的更改。当尝试插入具有相同键的多个实体时,可能会发生这种情况。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.UpdateException:检测到冲突更改。当尝试插入具有相同键的多个实体时,可能会发生这种情况。

有谁知道发生了什么变化以及为什么这不再起作用?需要改变什么才能使它起作用?

0 投票
3 回答
37505 浏览

c# - 实体框架代码优先命名约定 - 回到复数表名?

我只是先破解实体框架代码。按照他们的命名约定,我们现在必须将我们的表命名为复数,而不必干预该工具。我知道映射可以被覆盖。我的问题是,在遵循单数命名约定多年之后,我们是否又回到了使用复数名称?

另外,我想知道为什么新示例使用 Northwind 而不是 Adventure Works。我认为原因是因为 AW 使用单数命名,他们无法展示无代码功能

0 投票
1 回答
1054 浏览

c# - Entity Framework CTP Code First 列命名和关系

我刚开始研究新的 Entity Framework CTP5 代码。

我有以下非常简单的实体。

因此,帐户有一个所有者(用户)并且可以有许多用户。这些关系被转换为一个Accounts表和Users数据库中的一个表。

在 Users 表中,我得到两个列,AccountId并且AccountId1,有没有办法控制这些列的生成名称。此外,我实际上希望表格上有一个属性UserId列,但似乎引用在表格上。没有所有的钥匙真的很好:)AccountOwnerAccountsUsersAccountId...n

0 投票
2 回答
5432 浏览

c# - 如何在实体框架中设置两个相同类型的导航属性

使用代码优先 EF4(使用 CTP5),我可以添加一个导航属性以及外键,它会尊重命名,并且只将外键添加到表中一次。如果我然后去添加第二个相同类型的属性,它会在表格上将其分解为 4 列,而不是只有两列。

示例代码:

使用此模型,我将一个名为 PressTypeID 的属性添加到 PressType 的 AdapterFrameCapability 表中。

这是我要建模的设置,但它导致在表中创建 4 列,FromPressTypeID、FromPressTypeFromPressTypeID、ToPressTypeID 和 ToPressTypePressTypeID 各一列。理想情况下,我只想要 FromPressTypeID 和 ToPressTypeID 的列。我在这里做错了什么?

0 投票
4 回答
3740 浏览

entity-framework - 存根实体的实体框架代码首先更新

是否可以在 EF Code-First 中使用存根对象在不查询 db 中的整行的情况下进行更新,...

例如

上面的代码是否会创建一个更新语句,这将使 DinnerID 1 的行的以下列为空?

标题、事件日期、地址、国家

有没有像“PropertyModified” = true 的方式或方法,然后其余的使它们 = false,以便 HostedBy 是唯一将被更新的?

0 投票
2 回答
4580 浏览

c# - 如何使用代码优先 CTP5 将列映射到 EF4 中的复杂类型?

遇到 Entity Framework 4中缺乏enum属性支持的问题后,我发现这篇文章描述了一种解决方法:

Entity Framework 4.0 Beta 1 – POCO 枚举支持?

如何OrderStatusWrapper在代码中而不是在设计器中表达数据库列到(如文章中所述)的映射?

更新:

根据提供的答案,我没有意识到我需要OrderStatus用类型替换枚举OrderStatusWrapper,即

代替:

我应该使用:

这让我更进一步,但是在执行以下代码时:

引发以下异常(为简洁起见):

数据库列名为Status。我尝试用以下方式装饰Status房产:

[Column("Status")]

然后

[Column("Status"), TypeName("OrderStatus")]

[Column("Status"), TypeName("OrderStatusWrapper")]

但这并不能解决此异常。

我还尝试删除该Column属性并执行此操作:

但我得到以下编译错误:

错误 1 ​​类型“ConsoleApplication1.OrderStatusWrapper”必须是不可为空的值类型,才能在泛型类型或方法“System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration.Property( System.Linq.Expressions.Expression>)' [截断路径]