【发布时间】:2011-05-27 14:55:09
【问题描述】:
我正在使用流利的 Nhibernate 来映射一个简单的类
并使用 Schema Generation 在 MySQL DB 上创建此类。
我不能将 IList 用于我的属性(我正在映射跨语言域类)
所以我必须使用简单的数组..
我希望 NHibernate 在两个类之间创建一个连接表,
这些是域类:
public class ClassOne
{
public virtual Guid Guid { get; set; }
public virtual String Title { get; set; }
public virtual ClassTwo[] Tags { get; set; }
}
public class ClassTwo
{
public virtual Guid Guid { get; set; }
public virtual string Title { get; set; }
}
这是地图:
public class ClassOneMap : ClassMap<ClassOneMap>
{
public ClassOneMap ()
{
Id(x => x.Guid).GeneratedBy.GuidComb();
Map(x => x.Title);
HasManyToMany(x => x.Tags)
.Cascade.SaveUpdate());
}
}
public class ClassTwoMap : ClassMap<ClassTwo>
{
public ClassTwoMap()
{
Id(x => x.Guid).GeneratedBy.GuidComb();
Map(x => x.Title);
}
}
架构生成很棒!它有一个 ClassOne、ClassTwo 和 ClassTwoToClassOne 表 但是,当我尝试持久化 ClassOne 的实例时,我遇到了 Invalid Cast 异常。 这可以通过将数组更改为 IList 来解决,但我真的不能这样做..
谁能告诉我如何在不更改架构架构的情况下配置 Fluent 映射以使用数组?
非常感谢!
【问题讨论】:
-
我很好奇,您使用的其他什么语言不允许 IList?
标签: c# mysql nhibernate fluent-nhibernate