ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结

    CSDN广告是越来越多了,所有博客笔记不再更新,新网址 DotNet笔记

项目配置:ef6+mysql5.6(5.6.x , 5.7.3可以,但是5.7.9不行)+mono4.2+ubuntu15.1

准备工作:(注意 mysql版本)提前下载并安装好mysql for vs 插件  详情   插件下载


1)建项目-----》选择.net4.0 mvc项目


2)EntityFramework更新到最新

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第1张图片


3)下载最新的mysql-connector-net-6.9.8-noinstall,解压到然后找到对应.net版本的dll文件(5个),添加引用到项目中

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第2张图片


4) 把对应的web.config中的entityFramework节点修改为下面(注意版本号Version=x.x.x,要与MySql.Data.dll一致):

  
    
      
        
      
    
    
      
    
  
  
  
    
      
      
      
    
  


      改后如配置图

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第3张图片

5) 添加实体模型,如下系列图:

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第4张图片

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第5张图片

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第6张图片

ASP.net MVC4 + mono+ ubuntu15.1+ jexus +ef6 +mysql (linq to mysql) 实录,以及各类错误总结_第7张图片



6) 编译--->发布到服务器(windows或linux下面都尝试一下)--->重启web服务器--->浏览

    结束!!!




以下为常见问题:

问题1:VS2013中,EntityFramework连接mysql生成实体的过程,选择链接地址后,对话框闪退。
解决: MySql Connector Net 的版本和 MySql.Data.dll的版本不兼容 ,下载最新的

MySql Connector Net下载地址:http://cdn.mysql.com//Downloads/Connector-Net/mysql-connector-net-6.9.8.msi
MySql.Data.dll的下载地址:http://dev.mysql.com/downloads/connector/net/  点击下载(文件名mysql-connector-net-6.9.8-noinstall.zip,注意Select Platform:.net&mono)
先解压mysql-connector-net-6.9.8-noinstall.zip,把版本对应的dll添加到项目中-----》安装mysql-connector-net-6.9.8.msi



问题2:添加数据库实体模型的时候,出现报错:由于出现以下异常,无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DbNull

解决:我用的是mysql 5.7.9,出错了,然后换成5.7.3,或5.6.X 等版本就好了。


问题3:发布到linux mono上其他类错误,一般就解决方式就是 1)mysql-connector-net-6.9.8-noinstall.zip解压后重新引用项目    2)添加/检查节点


问题4:mysql服务器在ubuntu上面无法远程的问题

解决:

第一步:允许配置mysql,让root账号允许远程

    登陆mysql命令:mysql -u root -p

    更改Root账号:UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
    刷新缓存:flush privileges;

第二步:配置mysql,不让他仅仅监听127.0.0.1

    进入指定的目录:cd  /etc/mysql/mysql.conf.d

    打开mysqld.cnf文件:sudo gedit mysqld.cnf

    然后找到bind-address所在的行(当前bind-address=127.0.0.1),直接改为#bind-address=127.0.0.1,就是注释掉













你可能感兴趣的:(Asp.net)