【问题标题】:How to use entity framework inheritance?如何使用实体框架继承?
【发布时间】:2009-10-16 15:48:40
【问题描述】:

首先,我是个菜鸟,所以请保持温和 :-) 我有一个基础对象公司。我想将其继承到 Customer 对象和 Vendor 对象中。我的问题始于给定公司可以同时是客户和供应商的事实。我见过的所有示例都使用公司的属性并将其设置为客户或供应商,但我不能这样做。任何帮助将不胜感激。

谢谢, 托尼

为了(我希望)清晰而进行编辑。

stijn

这是我正在努力的简化版本。我的数据库中有如下所述的三个表。我已经在 Visual Studio 中创建了模型,并在表(在 CompanyId 上)和测试之间创建了关联,并且一切都按预期运行。当我删除关联并从公司继承客户和供应商时,我会遇到很多错误。我的假设:公司可以是一个对象,也可以由客户或供应商继承。给定的公司既可以是客户也可以是供应商。

我对实体框架非常陌生,大约两周前我开始使用它,并且仍在尝试了解更高级的(对我而言)部分。我是否完全偏离了我正在采取的方向,或者我只是错过了一些关键的东西?

公司 -ID -姓名 -地址 -城市 -等

客户 -客户ID - 客户特定字段 -公司ID

供应商 -供应商ID - 供应商特定字段 -公司ID

安德鲁温

在我的第一次尝试中,我能够通过创建对象然后查询实例(我认为是正确的词)并使用它来与供应商交互 Vendor.Company.Address = "123 Happy Trails"。我希望能够做的是 Vendor.Address = "123 Happy Trails" 使用继承。

感谢你们俩的帮助。

【问题讨论】:

  • Tony - 如果您需要帮助,我们将需要查看某种代码,无论是您尝试过的代码,还是您希望看到的伪代码。
  • 这只是一个猜测,因为您没有提供太多信息,但乍一看:通过组合构建您的 Company 类,即拥有一个 Customer 和一个 Vendor 成员。如果 Customer 和 Vendor 有很多共同点,他们仍然可以继承一个基类,但不能继承 Company。

标签: .net entity-framework


【解决方案1】:

我解决了这个问题。我正在使用现有的数据库。我尝试使用的表都有自动增量主键。他们需要关闭自动增量并在数据库中定义 1:1 关系。完成这些更改后,我就可以让继承的行为完全符合我的要求。

T

【讨论】:

    猜你喜欢
    • 2011-05-19
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多