【发布时间】:2018-12-10 22:48:36
【问题描述】:
我正在尝试与 EF6 建立一对多关系
这是我的实体。
书:
public class Book
{
public int BookId { get; set; }
public string BookName { get; set; }
}
出版商:
public class Publisher
{
public int PublisherId { get; set; }
public string PublisherName { get; set; }
public ICollection<Book> Books { get; set; }
}
上下文:
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class MyContext : DbContext
{
public MyContext() : base("name=MySqlDbConnectionString")
{
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
}
public DbSet<Publisher> Publishers { get; set; }
public DbSet<Book> Books { get; set; }
}
程序:
static void Main(string[] args)
{
using (MyContext entities = new MyContext())
{
Book user = new Book() { BookName = "gdsag" };
entities.Books.Add(user);
entities.SaveChanges();
}
}
问题是用于自动创建数据库。 但是当我运行它时,我收到以下错误:
MySql.Data.MySqlClient.MySqlException: '空间/全文/散列索引和显式索引顺序的使用不正确'
我使用的是 EF 6.2
MySql.Data 6.9
MySql.Data.Entity 6.9
任何想法我在做什么错误?
提前致谢
编辑: 这些是生成 sql 命令
create table `Books` (`BookId` int not null auto_increment ,`BookName` longtext,`Publisher_PublisherId` int,primary key ( `BookId`) ) engine=InnoDb auto_increment=0
-- Executing at 7/2/2018 11:02:32 PM +03:00
-- Completed in 52 ms with result: 0
create table `Publishers` (`PublisherId` int not null auto_increment ,`PublisherName` longtext,primary key ( `PublisherId`) ) engine=InnoDb auto_increment=0
-- Executing at 7/2/2018 11:02:32 PM +03:00
-- Completed in 49 ms with result: 0
CREATE index `IX_Publisher_PublisherId` on `Books` (`Publisher_PublisherId` DESC) using HASH
-- Executing at 7/2/2018 11:02:32 PM +03:00
-- Failed in 2 ms with error: Incorrect usage of spatial/fulltext/hash index and explicit index order
Disposed transaction at 7/2/2018 11:02:32 PM +03:00
【问题讨论】:
-
能否查看生成的命令(update-database -verbose),看看booksID或publisher的id上是否指定了顺序?
标签: c# mysql entity-framework