2010-07-10 128 views
0

我一直与功能NHibernate了几个月,我认为这是一个非常灵活的工具(即使“工具”是不正确可能长期):)功能NHibernate表列类型映射

我在一个新的项目上工作,我仍然在考虑使用流利的nhibernate解决方案将我的数据库映射到存储库层。问题是,出于某种原因,我真的不明白,数据库不是'标准'结构。

我的意思是表不被外键引用,但我不知道有这样的情况:

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

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

好像这是一个荒谬的情况!但是我不能在db上做任何事情。 所以问题是:我可以映射这些表流利nhibernate,即使列是不同类型的引用它们?提前

回答

3

没有

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

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

0

是的,没有。您可以映射表但不包含关系。这会给你一个贫血的领域模型和库方法来检索相关对象,即访问GetOrdersForCustomer()方法中的订单而不是Customer.Orders集合。

另一种可能性是为这些属性创建自定义用户类型,如IntStoredAsString。我只使用自定义类型的属性,所以我不知道他们作为外键工作得如何。