zoukankan      html  css  js  c++  java
  • C# EF 与 MySql 的那些坑

    之前一直想用 mysql 和 ef 。然后多次尝试也只能感叹 还是 sqlsever 是亲儿子。

    今天在单位又尝试了一次,然后就成功了,记录一下遇到的问题。

    首先是安装包和驱动?。

    保证 MySql.Data / MySql.Data.Entity.EF6 / mysql Connector/NET 版本对应一致

    2019.03  我使用的版本是· 6.10.8 

    Connector/NET 下载地址: https://dev.mysql.com/downloads/connector/net/6.8.html

    连接串:

    1  <connectionStrings>
    2     <add name="xxx" connectionString="Server=localhost;Database=bugbus;User=root;Password=;charset=utf8" providerName="MySql.Data.MySqlClient" />
    3   </connectionStrings>

    安装完后 EF的配置会自动添加 可以确认一下:

    标红的这一段要手动加。databaseInitializer是初始化的类绑定。

     1   <entityFramework>
     2     <contexts>
     3       <context type="DB.AppContext,DB">
     4         <databaseInitializer type="DB.Initializer,DB"></databaseInitializer>
     5       </context>
     6     </contexts>
     7     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
     8       <parameters>
     9         <parameter value="mssqllocaldb" />
    10       </parameters>
    11     </defaultConnectionFactory>
    12     <providers>
    13       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    14       <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    15     </providers>
    16   </entityFramework>

    然后运行就是是两个异常

    Specified key was too long; max key length is 767 bytes。

    Model compatibility cannot be checked because the database does not contain。

    这两个异常花了我好久时间查来查去,各种千奇百怪的解决方案。

    最后发现 https://www.cnblogs.com/Linner/p/6297223.html 的解决方法简单的解决了问题

     1  [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
     2     public class AppContext : DbContext
     3     {
     4         static AppContext()
     5         {
     6             DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
     7         }
     8 
     9         public AppContext() : base("xxxxxx")
    10         { }
    11 
    12         public DbSet<System.User> Users { get; set; }
    13 
    14 
    15     }
  • 相关阅读:
    Kaka's Matrix Travels
    Cable TV Network
    LightOJ 1137
    SPOJ AMR11E Distinct Primes 基础数论
    HDU 5533Dancing Stars on Me 基础几何
    POJ 1014 / HDU 1059 Dividing 多重背包+二进制分解
    vijos 1180 选课 树形DP
    vijos 1313 金明的预算方案 树形DP
    LightOJ 1062
    vijos 1464 积木游戏 DP
  • 原文地址:https://www.cnblogs.com/Aaxuan/p/10552147.html
Copyright © 2011-2022 走看看