使用列表时,流畅的NHibernate Schema输出有错误

时间:2015-06-26 00:02:20

标签: mysql vb.net nhibernate fluent-nhibernate fluent-nhibernate-mapping

我有两个表是多对一映射的。但是,保持第二个表的顺序很重要,因此当我使用自动化时,Fluent automapper会创建一个包。我更改了此命令以使用此命令强制列表:

.Override(Of ingredients)(Function(map) map.HasMany(Function(x) x.PolygonData).AsList())

(VB.NET语法)

所以我说“AsList”而不是使用包,生成的映射xml现在包含一个列表。好到目前为止。然而,

MySQL生成的语句无法处理。我使用MySQL55Dialect创建语句,我使用的正是该版本。但它创建了以下创建:

create table `ingredients` (
    Id INTEGER NOT NULL AUTO_INCREMENT,
   Name FLOAT,
   Amout FLOAT,
   Soup_id INTEGER,
   Index INTEGER,
   primary key (Id)
)

由于“Index INTEGER”这一行而崩溃,但我不知道该怎么办。有什么想法吗?

谢谢! 最好, 克里斯

1 个答案:

答案 0 :(得分:1)

我怀疑 Index 可能是MySQL的关键字。为了避免这种冲突,我们可以定义不同的索引列名称(抱歉为C#表示法)

HasMany(x => x.PolygonData)
    .AsList(idx => idx.Column("indexColumnName").Type<int>())