【问题标题】:Entity Framework 4.0: Adding a property on a table to hold a entity from another table?Entity Framework 4.0:在表上添加一个属性来保存另一个表中的实体?
【发布时间】:2010-08-23 04:59:43
【问题描述】:

我想在我的模型中的表上创建一个新属性。基本上我有一个名为 contract 的表,它有很多字段,但我想添加另一个名为 client 的字段,它将保存我的另一个名为 client 的表。

我尝试过使用复杂类型,但我不知道是不是这样......然后我发现了导航属性......这听起来很有趣......也许像到客户端的链接?? ..但我似乎可以将它指向任何地方..

基本上,Contract 表/模型需要一个名为 client 的新属性 ...client 实际上是一个实体,但客户端必须随合同一起旅行。

这是怎么做到的??

我想在模型中进行设置,这样我就可以自动更新模型等......并且不会丢失任何自定义更改......

我当然可以在另一个文件的 Partial 类中插入一些东西....

有什么想法吗?

谢谢

【问题讨论】:

  • 我已经设法在模型上添加了一个关系,代码生成会自动生成文件。我想知道是否有人可以确认这是一个好方法??或者最好创建一个新文件(.cs)并添加到 PARTIAL CLASS 并手动添加东西......???这意味着我的模型是干净的,即模型只包含数据库中的项目?
  • 最好在模型中定义关系以在部分类中实现。在你的模型中定义关系将强制完整性,即使你的数据库没有......而如果你使用部分类,你必须自己编写强制代码。

标签: entity-framework entity-framework-4


【解决方案1】:

您尝试做的通常是通过正确定义数据库中的表之间(或模型中的字段之间,如果您正在进行模型驱动设计)的主/外键关系。

Entity Framework 将自动神奇地查看表之间的外键关系,并在父类上生成一个属性来保存子类。

至于您的评论(哪个更好,在模型中定义关系或创建部分类):

最好在模型中定义关系以在部分类中实现。在模型中定义关系将强制完整性,即使您的数据库没有......而如果您使用部分类,则必须自己编写强制执行代码。

【讨论】:

  • 嗨贾斯汀,嗯,所以如果我在部分类中编写手册,我会错过什么?参照完整性???还是别的什么?
  • 是的。将缺少参照完整性。就像我说的,您可以手动编写代码……但为什么要浪费精力呢?
【解决方案2】:

如果可能的话,我认为您会希望在包含客户主键的合同表中添加一个外键。然后您可以单击“更新模型”,这将为您的模型添加一个导航属性。

【讨论】:

  • 嗨,斯科特...是的,但我不想在数据库本身中进行任何更改,我可以在模型上添加外键吗?
猜你喜欢
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 2015-02-20
  • 2018-05-20
  • 2023-03-26
相关资源
最近更新 更多