首页 > 代码库 > 2017年3月10日

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日