我有两个表是多对一映射的。但是,保持第二个表的顺序很重要,因此当我使用自动化时,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”这一行而崩溃,但我不知道该怎么办。有什么想法吗?
谢谢! 最好, 克里斯
答案 0 :(得分:1)
我怀疑 Index
可能是MySQL的关键字。为了避免这种冲突,我们可以定义不同的索引列名称(抱歉为C#表示法)
HasMany(x => x.PolygonData)
.AsList(idx => idx.Column("indexColumnName").Type<int>())