当我映射一个具有System.Type类型属性的实体时,我知道NHibernate将其映射到DbType.String,保存程序集限定名,并且我可以看到,在表中,type列保存类似于"TarkusSoftware.Abstract.ITask,TarkusSoftware.Abstract,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null“的值。
这对长期开发意味着什么,当我们最终将程序集版本更改为2.0.0.0时会发生什么?我认为NHibernate将无法使对象水化,因为它将无法找到具有其程序集限定名的类型。在这种情况下,应该如何继续映射System.Type以确保未来的兼容性?谢谢:)
发布于 2011-09-16 17:52:30
这可能是正确的。您可以实现自己的IUserType,以便更好地进行控制。
我刚查了NH源,你是对的。它只使用类型和程序集名称,忽略版本等。如果感兴趣,请查看以下代码: TypeNameParser.Parse()
https://stackoverflow.com/questions/7442593
复制相似问题