流畅的nhibernate表列类型映射

时间:2010-07-10 17:30:47

标签: nhibernate fluent-nhibernate

我一直在使用流利的nhibernate工作几个月,我认为这是一个非常灵活的工具(即使'工具'可能是不正确的术语):)

我要开发一个新项目,我还在考虑使用流畅的nhibernate解决方案将我的数据库映射到存储库层。问题是,由于某些原因我真的不明白,db不是'标准'结构化的。

我的意思是外键不引用表,但我确实知道有些情况:

表X:列A类型nvarchar 表Y:列A类型int

X是包含数据的表(以代码的形式),而Y是包含X.A描述的表。

好像这是荒谬的情况!但我无法对数据库做任何事情。 所以问题是:我可以用流利的nhibernate映射这些表,即使列的类型不同,也能引用它们吗?

事先提前

2 个答案:

答案 0 :(得分:3)

不,NHibernate不支持具有完全不同数据类型的外键。

现在,考虑到这是一个项目,您需要做的就是修复数据库。

答案 1 :(得分:0)

是和否。您可以映射表,但不能映射关系。这将为您提供一个贫血的域模型和存储库方法来检索相关对象,即从GetOrdersForCustomer()方法而不是Customer.Orders集合访问订单。

另一种可能性是为这些属性创建自定义用户类型,例如IntStoredAsString。我只使用自定义类型的属性,所以我不确定它们作为外键的效果如何。