将查找表映射到类

时间:2009-09-16 18:16:15

标签: nhibernate

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

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

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

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

编辑:

我的部分问题源于这样一个事实,即我试图避免使用单个属性创建“City”类 - 我只是想将Address.City作为域模型中的字符串。这可能是不明智的,我不知道。

1 个答案:

答案 0 :(得分:1)

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

如果对数据库执行“distinct”操作,则需要编写sprocs来插入和更新Address。然后,这些sprocs将包含“如果它在表中使用City,否则创建一个新的”的逻辑。

就个人而言,如果可以避免,我不赞成使用sprocs,所以我建议您创建一个City类,并在Address类上映射它。