目录
写在前面环境下载MySQL连接工具创建Databse First 1.创建控制台2.创建数据库3.安装 MySQL.Data 和MySQL.Data.Entity3.在项目中添加数据实体模型产生的问题及解决方案 1.问题12.问题23.问题3Database First又叫数据库优先的开发方式,是一种比较旧的开发方式,现在已经不再使用这中开发的方式。
当然,对于一些旧项目进行升级,在已经有了数据库的情况下,使用此方式还是十分方便的。
开发环境: win10 家庭版
开发工具:Visual Studio 2019
数据库:MySQL 8.0.17
首先,需要安装 mysql-for-visualstudio-1.2.8.msi 下载地址
.其次,安装mysql-connector-net-6.10.9.msi 下载地址
在安装 MySql.Data 6.10.9和MySQL.Data.Entity 6.10.9时的版本号要与安装mysql-connector-net-6.10.9.msi的版本号必须要一致。
【1】右击项目,选择添加新项 ,如图所示:
【2】 单击“下一步”按钮,选择"从数据库中生成",如图所示:
【3】新建数据库连接,如图所示:
选择MySQL Database。如果没有MySQL Database的选项。可翻看解决mysql的ODBC驱动下载及安装 点击下一步,填写配置信息。点击测试测试成功。【4】在EF中可以直接调用存储过程、视图、函数的,这我们先选择一张表 如图所示:
【5】点击“完成”按钮,最后的展示效果如图:
【6】在代码中添加访问上下文保存到数据库的代码:
在APP.config 中找到连接字符串 在connectionStrings节点中,添加Password <add name="mysqldemodbEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;user id=root;Password=root;persistsecurityinfo=True;database=mysqldemodb"" providerName="System.Data.EntityClient" /> 最后,在Program类中 编写添加的方法 using System; namespace myEFDatabaseFirst_01 { class Program { static void Main(string[] args) { mysqldemodbEntities db = new mysqldemodbEntities(); sys_borrow_user user = new sys_borrow_user() { user_id = Guid.NewGuid().ToString().Replace("-",""), u_id="admin", u_password="admin", gender="w", user_name="超级管理员", creation_time=DateTime.Now, status="y" }; db.sys_borrow_user.Add(user); db.SaveChanges(); } } }EF在SaveChanges 的时候会遍历上下文容器的每一个代理对象,
然后根据代理对象的State属性生成不同的SQL语句。
再一次性的发送到数据库中执行。
执行完成后,我们可以看到数据库中已经插入一条数据。
如图所示:
产生问题:
产生原因:原来是使用的MySql.Data使用的版本过高,默认使用了最新的8.0.17。
解决方案:将MySql.Data的版本改成6.10.9版本。
产生问题
产生原因:连接字符串没有密码
解决方案:找到连接字符串后,添加Passwork=root;重新生成解决方案。
产生原因:都是因为项目中引用的MySql.Data.Entity.EF6版本和安装的mysql-connector-net版本不一致。
解决方案:项目中引用的MySql.Data.Entity.EF6版本和安装的mysql-connector-net版本不一致。改成一致即可
转载于:https://www.cnblogs.com/ZengJiaLin/p/11388126.html
相关资源:JAVA上百实例源码以及开源项目