【发布时间】:2013-04-04 22:23:12
【问题描述】:
我有类似下面的课程。我想重用类并将它们保存在不同的表中,首先使用实体框架代码。
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsAvailable { get; set; }
public List<Part> Parts { get; set; }
public List<Promotion> Promotions { get; set; }
}
public class Field
{
public int Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
public class Part
{
public int Id { get; set; }
public string Name { get; set; }
public List<Field> Details { get; set; }
}
public class Promotion
{
public int Id { get; set; }
public string Name { get; set; }
public List<Field> Details { get; set; }
}
我想映射我的实体,以便生成如下所示的数据库表。
产品:ID、名称、IsAvailable
ProductParts:ID、名称、ProductId
ProductPartDetails: ID、名称、值、ProductPartId
ProductPromotions:ID、名称、ProductId
ProductPromotionDetails:ID、名称、值、ProductPromotionId
我真正感兴趣的是我希望 Field 类被重用并存储在不同的表 ProductPartDetails 和 ProductPromotionDetails 中,正如我所描述的更多。有可能还是我的方法需要改变?
【问题讨论】:
-
你试过了吗?什么不起作用
-
我想知道fluent api。目前,使用 ForeignKeys 创建并与 Product 和 Promotion 共享表“字段”。
-
我听到了 :) 你可以 - 但你需要重新安排一切。您应该使多对手动“手动”(定义像 ProductPartDetails 等自定义类) - 为它定义流利的配置(例如 HasRequired(...).WithMany(...) 和 .HasKey(...) 和将
Field作为属性添加到该表中。创建字段ComplexType,以便“重用”(仅转换为字段,而不是单独的表)。两者都类似。如果你可以自己尝试一些东西关于这个 - 我现在没有时间 - 我会看看你做了什么,并在这些空白处感受。 -
您现在已经“15 岁以上”了 - 欢迎来到“选民”
标签: entity-framework dictionary code-first