【问题标题】:Mapping lookup table to class将查找表映射到类
【发布时间】:2009-09-17 07:30:48
【问题描述】:

我有一个参考/查找表,其主要目的是为用户提供现有选项的列表。用户还可以在列表中输入新项目。你会如何在 NHibernate 中映射它?

例如,假设我有一个带有 City 字段的 Address 类。该数据库有一个地址表和一个城市查找表。 (此时我可以定义我想要的关系。)编辑地址时:

  • 用户可以选择任何可用的城市,也可以输入新的城市。
  • 必须将输入的新城市添加到查找表中。
  • 编辑地址实例的城市应该更改引用 - 如果编辑的城市也存在于数据库中 - 或者使用该名称创建一个新的城市条目并引用它。 (如果我将“芝加哥”编辑为“纽约”,我不希望芝加哥的所有地址都更改为纽约;只是我正在查看的那个。)

我一直在搜索 NHib 文档,但我完全不确定我应该采取什么方法。

编辑:

我的部分问题源于我试图避免创建具有单个属性的“City”类 - 我希望 Address.City 成为域模型中的字符串。这可能是不明智的,我不知道。

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    所以你有地址,你想要一个不同的城市列表。您需要在代码或数据库中执行“不同”操作。在代码中执行此操作意味着将 City 类映射到您的 City 表 - 我看不出如何避免它。

    如果对数据库执行“不同”操作,则需要编写存储过程来插入和更新地址。然后这些存储过程将包含“如果城市在表中则使用该城市,否则创建一个新城市”的逻辑。

    如果可以避免,我个人不赞成存储过程,因此我建议您创建一个 City 类并将其映射到您的 Address 类。

    【讨论】:

    • 最后,我将坚持使用 String 属性,丢失查找表,并使用 HQL 查询填充列表。感谢您的想法 - 选择您的答案是因为它最有帮助。
    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2011-12-18
    • 2011-03-25
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多