2017年3月10日
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017年3月10日相关的知识,希望对你有一定的参考价值。
昨天加载好了 EF 和 mysql.data.Entity 两个包,配置好了config文件,但是没有跑代码操作数据库。
每次都是报错
Specified key was too long; max key length is 767 bytes
而现在用自己的笔记本上的vs2012却没有出现这个报错,特别神奇。Mysql每个字段不超过767字节,这个是Mysql默认的大小,当然可以通过Mysql的配置文件修改。
我传入的对象 最长不超过20字节,所以非常不可思议。
搜索了一天有了一个折中的解决方案
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class MyContext : DbContext{}
用上面约束条件 之后如愿以偿 成功创建了表和插入了数据。
在main里面直接跑
Database.SetInitializer(new CreateDatabaseIfNotExists<PortalContext>()); ///当数据库不存在 自动创建
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<PortalContext>()); ///当模型变化 删除数据库后在创建
Database.SetInitializer(new DropCreateDatabaseAlways<PortalContext>()); ///总是删除数据库后创建一个新的
用context继承来的方法 AddRange(datalist),把datalist表单 2w行一同插入表,14s。
明天周末继续。
以上是关于2017年3月10日的主要内容,如果未能解决你的问题,请参考以下文章