问题标签 [entity-framework-mapping]

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

ios - restkit 从响应映射 CLLocationCoordinate2D

我有一些地理位置数据,我需要将其解析为CLLocationCoordinate2D来自对象geo

我找到了一些关于如何使用它的信息RKCLLocationValueTransformer,但我不明白如何让它适用于我的情况。

0 投票
3 回答
4786 浏览

sql - 具有可能不同键的两个实体映射到同一行

Field1 PK int not null Field2 PK int not null当我想映射此表时,我有这样的表我收到此错误

我试图在模型中删除并重新创建该表。当我添加表时,它给出了另一个错误,但最后我总是得到这个错误

我该如何处理这个问题请帮助我...

0 投票
1 回答
71 浏览

entity-framework - 如何通过实体框架中的 Fluent API 设置层次结构

我有一个员工等级制度,有老板和下属。

我尝试将其配置如下:

但是Add-Migration Init
Note that Boss is not-null but the is optional (总统没有老板)的结果

如何建立这种层次结构,使其可以在没有老板(作为总裁)的情况下使用

0 投票
1 回答
47 浏览

entity-framework - 为什么我的所有模型类都被添加到当我使用多个数据上下文类时创建的第一个 Configuration.cs 文件中?

具有多个数据上下文的实体框架 6 代码优先迁移

注意:这是我在 Stack Overflow 上的第一篇文章,所以如果我需要提供更多详细信息,请告诉我。

仅供参考:我已阅读文章:

具有多个数据上下文的实体框架 6 代码优先迁移

我正在尝试做类似的事情。我的问题/问题围绕在 Configuration.cs 文件中生成的 CreateTable 方法。

我有 29 个模型类,我正在尝试设置 4 个不同的数据上下文。

在我的第一个数据上下文 RuleRequestContext 中,我有 29 个模型类中的 11 个:

使用包管理器,我遵循以下 3 个步骤:

注意:这些是通用说明:

第 2 步是我的问题所在。运行第 2 步后,我得到: 一个名为 RulerRequestContextMigrations 的文件夹,其中包含 2 个文件:

201502212023508_Initial.cs 和 Configuration.cs。

当我查看 Configuration.cs 时。文件中,函数 public override void Up() 对我的所有 29 个模型类都有一个 CreateTable 函数。

我认为只会创建我的 RuleRequestContext 类中列出的 11 个。

这是我的 RuleRequest 模型类的快照。

我的所有 4 个数据上下文类都有一个使用代理的模型类,并且具有:

问题:

(1) 由于关系/虚拟属性,我的所有 29 个模型类是否都被添加到了 RulingRequest 的 Configuration.cs 中?例如,因为我的所有 4 个数据上下文类都有: public virtual Agency Agency { get; 放; 所有这些模型类都被添加到我的 RulingRequestContext.cs 类的 Configuration.cs 文件中。

(2) 假设我的初始数据上下文类 (RulingRequestContext) 和它的 Configuration.cs 类按预期工作,我是否应该注释掉其他 3 个 Configuration.cs 类中的所有 CreateTable 代码?

(3) 或者我应该注释掉在我的RulingRequestContext 中没有作为DBSet 属性出现的所有模型类的CreateTable 代码吗?然后对我的其他 3 个 DataContext 类做同样的事情?

感谢您花时间阅读本文!请让我知道是否有什么我可以做或不做的事情来让我的帖子在未来变得更好!

0 投票
2 回答
85 浏览

c# - 具有可为空值的一对一映射

我有两个实体类,ContactUser.

User具有ContactID作为外键的Contact. 我可以显示Userto的关系Contact

现在我还需要Contact与表User中的相同外键建立关系User(而不是Contact

所以我需要让这种ContactUser关系继续下去Contact。我应该使用什么样的映射?


编辑

正如我所建议的那样: modelBuilder.Entity<Contact>().HasRequired(c => c.ContactUser).WithOptional(pi => pi.Contact); 我从中删除了ForeignKey属性User,它导致Multiplicity...error

但我得到错误喜欢: Invalid column name 'User_Id'.

0 投票
1 回答
242 浏览

c# - 实体框架用单独的表映射多对多自身关系

我有一个实体在某些条件下排除了相同类型的实体。为了实现这一点,我有一个实体类,如:

这会导致在 EF 中创建Entity_ID在我的模型中调用的第三列和外键字段。似乎它认为我在这里定义了另一种关系,但我不明白为什么。

以下是创建的表中与外键相关的部分:

0 投票
3 回答
2208 浏览

c# - ASP.NET EF 从未映射的类中删除鉴别器列

我有我的内容模型:

要显示数据,只有上面的模型就可以了。但我想添加编辑内容的功能。所以我需要为成员内容添加一个属性——但这应该只发生在作者按下编辑按钮时,而不是在内容的常规视图中。

所以我创建了第二个模型,它继承自BaseModel以便我可以用我的属性覆盖成员:

这工作正常,但由于继承 EF 创建一个额外的列鉴别器。它包含类的类型作为字符串。在我的情况下,它总是BaseModel因为我总是在将EditableBaseModel转换为BaseModel之前它被保存到数据库中,如下所示:

因此,鉴别器列是浪费空间,我想删除它。我发现这可以使用 NotMapped-attribute来完成。但是当我尝试保存模型时,这将导致以下异常:

找不到 EntityType 'EditableBaseModel' 的映射和元数​​据信息。

似乎 NotMapped 属性会让 EF 知道存在另一个继承自BaseModel的类,但 EF 不会获得有关此类的任何信息。但这不是我想要的。我需要告诉 EF:EditableBaseModel不是它应该关心的,因为它只适合我的视图,并且永远不会用于数据库。

我怎样才能做到这一点?我发现的唯一方法是将EditableBaseModel实例手动转换为BaseModel对象,如下所示:

但这似乎不是一个好方法,因为我有多重属性。而且它也不是很灵活,因为当我向 BaseModel 添加一些东西时,我也必须在这里添加它——这可能会导致奇怪的错误。

0 投票
1 回答
78 浏览

c# - HasRequired 的奇怪行为

HasRequired各州的帮助

配置此实体类型的必需关系。除非指定此关系,否则实体类型的实例将无法保存到数据库中。数据库中的外键将不可为空。

我有一个不需要的字段配置为

这当然很奇怪,因为不需要客户。但是,它适用于:D 既适用于空值,也适用于设置客户时。如果我改为

它失败了(已经从数据库中获取)

列名“Booking_BookingKey”无效。

失败的代码

编辑:实体的结构是

0 投票
2 回答
1541 浏览

entity-framework - 实体框架使用一个没有该表的类的中间表进行一对多映射

我有

并且由于CloudFile可以被其他类使用,最干净的解决方案似乎是创建一个名为IssueFile. 问题是我的代码中没有这样的类......那么我如何在不创建这样的中间类之间Issue进行映射。CloudFile或者这甚至可能吗?我知道有类似的问题(与中间表的一对多映射),但他们创建了这个中间但希望是不必要的类。

0 投票
1 回答
96 浏览

c# - 实体框架一到需要许多映射不起作用

我有两个班级,有 1 - 1..* 的关系。

现在,我试图让我的数据库正常运行,以便 A 的任何实例都必须在其 ICollection 中至少有一个 B,并且没有上限。B 的任何行都应该具有对 A 行的外键引用。我的映射如下所示:

我这样做时的预期行为:

应该是抛出异常。但是实体框架插入时没有任何抱怨。我在映射中做错了什么?

编辑:我通过在 Bees 属性上放置 [System.ComponentModel.DataAnnotations.Required] 注释,为该问题做出了一个丑陋的临时解决方案。但这仅检查 Bees 是否为空,而不是实例化时是否为空列表。