我正在使用EF Code-First(EFCF)与MySQL一起使用Migrations创建我的数据库。我遇到的问题是字符列。
我不是MySQL方面的专家,但从我读过的内容来看,在MySQL中你至少可以通过两种方式支持表中的Unicode:
将其设为整个表格的默认值:CREATE TABLE mytable (...) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci;
使每个特定列支持Unicode:CREATE TABLE myTable (col1 VARCHAR(10) CHARSET utf8, OtherColNotUnicode VARCHAR(5), ...);
(请注意MySQL没有NVARCHAR)
事实证明,默认情况下,EFCF迁移创建没有Unicode支持的表和列,我无法找到覆盖模型或注释模型中属性的方法,基本上强制它使用任一选项 1 < / em>或 2 。
如何更正此问题?我最好逐列设置它,但如果需要,我可能会使用整个表默认值。
如果它有帮助,我使用EF 5.0,MySql.Data和MySql.Data.Entity v 6.6.4.0。