如何解决流利的Nhibernate 3映射复合字段自定义类型
|| 大家好,我的情况public class Permission
{
public virtual Function Function { get; set; }
public virtual Profile Profile { get; set; }
}
public class MapPermission : ClassMap<Permission>
{
public MapPermission()
{
Table(\"Permissions\".ToUpper());
CompositeId().KeyProperty(x => x.Function,\"FunctionID\").KeyProperty(x => x.Profile,\"ProfileID\");
}
}
其中功能和配置文件是两个易于映射的实体。运行时出现此错误:
无法确定以下类型:Data.Model.Entities.Function,Data.Model,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null,用于列:NHibernate.Mapping.Column(FunctionID)\“}
有办法避免这种情况吗?最终,我需要创建一个由两个自定义映射类组成的CompositeID的类。如果我使用带有int字段的CompositeID,它就像一个魅力
提前致谢
功能(如配置文件)映射
public class Function
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
}
public class MapFunction : ClassMap<Function>
{
public MapFunction()
{
Table(\"FUNCTIONS\");
Id(x => x.ID);
Map(x => x.Name);
}
}
解决方法
使用KeyReference代替KeyProperty
public class MapPermission : ClassMap<Permission>
{
public MapPermission()
{
Table(\"Permissions\".ToUpper());
CompositeId()
.KeyReference(x => x.Function,\"FunctionID\")
.KeyReference(x => x.Profile,\"ProfileID\");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。