不得不吐槽一下微软对自己产品的支持是非常棒的,但对它自己产品的竞争产品的支持相比而言是比较麻烦的,也很难找到资料来解决。本文章解决mysql数据库的问题。
下面是步骤:
1.新建asp.netMVC项目,添加引用:MySql.Data、MySql.Data.Entity、MySql.Web。提示:需要提前安装好mysql connector/net。在官网http://www.mysql.com/products/connector/能找到。
2.在Models文件夹新建Movie类。代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
using MySql.Data.Entity;
using MySql.Data.MySqlClient;
using MySql.Web.Security;
namespace mvc.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
}
3.点击 工具->NuGet程序包管理器->程序包管理器控制台。在PM>后,先输入 Install-Package EntityFramework
运行完成后再输入Install-Package MySql.Data.Entity
等待运行完成。本步骤主要是让vs自动更改web.config文件夹,以满足mysql的使用需求。
4.首先重新生成一下本项目,不然可能会报错。在Models文件夹下,新建 ADO.NET实体数据模型,一步一步配置mysql,完成后会发现在web.config中的 <connectionStrings></connectionStrings>中多了 <add name="test" connectionString=... /> 这句话。证明成功了,重新生成一下本项目,一面报错。
如果出现提示:
选择 全否,以免放弃vs自动为mysql配置的web.config文件的更改。
5.在Models文件夹下,新建带有MVC5视图使用ef框架的控制器,配置如下:
模型类为第二步新建的Movie类,数据上下文类为第四步生成的<add />字符串生成的name值,即在本示范中是 test。控制器名称自己随意命名吧。
选择添加,如果没出错,你运气好。如果出错,重新生成在添加一些。还有错,提示不支持不同数据库之类就去web.config中修改自动生成的<add />。修改后如下:
<add name="test" connectionString="server=localhost;user id=你的mysql用户名;password=你的mysql密码;database=mymvc" providerName="MySql.Data.MySqlClient" />
重新生成一下本项目,再次添加,就会自动生成对数据库movies表的增删等操作。友情提示:必须提前在mysql中新建数据库及表,且表名应为你新建的model类名称+s。如本示范新建Movie.cs 类,则对应的表名称为movies,且各字段一一对应。
好了,终于解决了,亲儿子和干儿子的区别还是挺大的。感谢一些人的共享,我是在他们教程的提示下找到的解决方法。