Asp.Net WebApi中MySql+EntityFramework的配置

(一)环境配置:Connector和类库(MySql.Data.EntityFramework、MySql.Data和EntityFramework)的安装。

MySQL Connector/NET的下载如下。下载后默认安装即可。安装MySQL Connector/NET很重要,否则会异常。

MySql.Data.EntityFramework、MySql.Data和EntityFramework的安装。只需要Nuget安装MySql.Data.EntityFramework,另外两个将会被自动安装:

(注意:上图中记得选择安装MySql.Data.EntityFramework库,而不是MySql.Data.Entities或MySql.Data.Entity,否则可能遇到很多问题)

(二)初步使用

 

Context类就已经自动生成了。关于连接字符串也自动配置到程序的config文件中了,正常情况下就可以直接使用了。

 

注:常见问题:(1)字符乱码:数据库采用utf-8,那么在应用程序中的web.config中找到connectionStrings,在连接字符串中加入Charset=utf8,比如“server=localhost;user id=root;password=实际数据库密码;Charset=utf8;database=数据库名称”;(2)生成的实体类有时无法使用JsonConvert.SerializeObject()方法进行序列化,主要是由于从子表向父表的导航属性导致循环引用而引起的序列化问题,可以在此类导航属性上加上[JsonIgnore]忽略对导航字段的序列化。(3)插入数据时,int类型的Id出现0无法插入的异常。实际上,默认情况下,EF从程序向应用程序中插入数据的时候,id的值是不会插入进去数据库的,导致每次插入时数据库都使用默认值0作为id,如果数据库中还不存在id=0的记录,则可以正常插入,否则就出现重复而导致异常。为了避免这种情况,在数据库中,可将int类型id设为自增型的Key,即在创建的时候加上AUTO INCREMENT关键字。

补充:如果遇到Uniety.Dns.Core无法加载,则使用Nuget手动更新安装程序包“Ubiety.Dns.Core包,比如 更新为2.5.0版本的。(有时在开发机器上正常测试,但上传到服务器上的时候,会遇到Uniety.Dns.Core无法加载的问题,比如下面的异常提示:

“/”应用程序中的服务器错误。

未能加载文件或程序集“Ubiety.Dns.Core”或它的某一个依赖项。未能验证强名称签名。此程序集可能已被篡改,或者已被延迟签名,但没有用正确的私钥进行完全签名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值