使用列表时出现错误的 Fluent NHibernate Schema 输出
Fluent NHibernate Schema output with errors when using list
我有两个 table 是多对一映射的。但是,保持第二个 table 的顺序很重要,所以当我使用自动映射时,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," 行而崩溃,但我不知道该怎么做。有什么想法吗?
谢谢!!
最好,
克里斯
我怀疑 Index
可能是 MySQL 的关键字。为避免此类冲突,我们可以定义不同的索引列名(抱歉使用 C# 表示法)
HasMany(x => x.PolygonData)
.AsList(idx => idx.Column("indexColumnName").Type<int>())
我有两个 table 是多对一映射的。但是,保持第二个 table 的顺序很重要,所以当我使用自动映射时,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," 行而崩溃,但我不知道该怎么做。有什么想法吗?
谢谢!! 最好, 克里斯
我怀疑 Index
可能是 MySQL 的关键字。为避免此类冲突,我们可以定义不同的索引列名(抱歉使用 C# 表示法)
HasMany(x => x.PolygonData)
.AsList(idx => idx.Column("indexColumnName").Type<int>())