首页 > 数据库 >使用EF 连接 数据库 SQLserver、MySql 实现 CodeFirst

使用EF 连接 数据库 SQLserver、MySql 实现 CodeFirst

时间:2024-07-03 11:55:04浏览次数:24  
标签:CodeFirst EF BaseDevice SQLserver System context using public

1.新建项目,下载Nuget安装包

创建项目需要注意几点,如果是基于 .net framework 的项目 需要选择 相应版本的 EF, 如果是跨平台则选择EF Core版本。

我这里选择的是 .net framework 版本。红框里面是 实现EF Code First 需要的包。

对应的版本:

EntityFramework 6.3.0

MySql.Data 6.8.8

MySql.Data.Entities 6.8.3 

如果是连接SqlServer 很简单,直接下载 EntityFramework 6.3.0 这个一个包就行了。程序集会引入这两个组件。然后编写代码即可。

 

 针对MySQL 需要再下载这两个包

 

 

下载完成后设置App.config或者 Web.config 文件  ,这一步下载包的时候一般会自动添加,如果没有的话就手动加一下

  <entityFramework>
    <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>

2.创建EFModel

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleWebSocket.Models
{
    [Table("BaseDevice")]
    public class BaseDevice
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
    }

    public class BaseDeviceDbContext : DbContext
    {
        public BaseDeviceDbContext()
           : base("myConn")
        {
            Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BaseDeviceDbContext>());
        }

        public DbSet<BaseDevice> BaseDevice { get; set; }
    }
}

4.操作数据库 测试

        /// <summary>
        /// code first 
        /// </summary>
        public static void TestCodeFirst()
        {
            using (var context = new BaseDeviceDbContext())
            {
                // 查询数据
              List<BaseDevice> models = context.BaseDevice.ToList();

                // 添加数据
                context.BaseDevice.Add(new BaseDevice { Id = 1, Name = "New Model", Description= "Description" });
                context.BaseDevice.Add(new BaseDevice { Id = 3, Name = "New Model", Description = "Description" });
                context.SaveChanges();

                //// 更新数据
                var model = context.BaseDevice.FirstOrDefault(m => m.Id == 1);
                if (model != null)
                {
                    model.Name = "Updated Name";
                    context.SaveChanges();
                }

                // 删除数据
                context.BaseDevice.Remove(model);
                context.SaveChanges();
            }
        }

 

标签:CodeFirst,EF,BaseDevice,SQLserver,System,context,using,public
From: https://www.cnblogs.com/motion/p/18281201

相关文章

  • SQLServer设置端口
    要在SQLServer中设置或更改端口号,可以通过SQLServer配置管理器进行配置。以下是具体步骤:打开SQLServer配置管理器:在Windows上,按Win+R打开“运行”对话框,输入SQLServerManager<version>.msc,例如SQLServerManager13.msc(适用于SQLServer2016)或SQLServe......
  • SciTech-Psychology-Management-Behavioral Approach: Hawthorne effect霍桑效应: 主
    长期行为上:立场、思想信仰、文化理念、利益分配、投入产出比、自主自由度等,多维度决定。短期行为上:霍桑效应是一方面,被关注等社会性需要的满足,对比物质待遇也/更能激励员工的积极性和创造性[1]。社会行为上:人们相互之间,能相互影响,通过“谈话”、行为、交互甚至是“刺......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
        您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcg......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
        您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcg......
  • #define int Modint<11>
    本文为第二届你要魔怔杯鲜花大赛!!!投稿作品。前言这是一个\(\bmod\11\)的世界。假设这个世界与地球类似(不妨称它为E球),但是所有的数都是\(\bmod\11\)意义下的。在正文和注解部分书写一个十进制数时我会用0d作为前缀。下文用\(A\)代替\(10\)。人名都是随机找的。......
  • 电赛开发板之c2000 f28069m开发环境配置与报错because its compiler definition is no
    1.CSS报错Seedetailsbelow...  Error:Importfailedforproject'Example_2806xECap_Capture_Pwm'becauseitscompilerdefinitionisnotavailable.PleaseinstalltheC2000v22.6compilerbeforeimportingthisproject-click'View>CCSA......
  • this.$refs[tab.$attrs.id].scrollIntoView is not a function
    打印this.$refs[tab.$attrs.id].scrollIntoView 在控制台看到的是一个undefined是因为this.$refs[tab.$attrs.id]不是一个dom是一个vuecomponent如图所示:所以我用的这个document.querySelector(`.${tab.$attrs.id}`)获取domdocument.querySelector(`.${tab.$attrs......
  • 使用 LEFT JOIN 时,将条件写在 ON 子句和 WHERE 子句的区别
    1.条件写在ON子句中当条件写在ON子句中时,条件会在进行连接操作时立即应用。这意味着只要左表中的行存在,不论右表中的行是否满足条件,左表的行都会包含在结果集中。如果右表中的行不满足条件,结果集中会显示右表的列为空。示例SELECT*FROMt_useruLEFTJOINt_user_role......
  • 单元测试@BeforeAll和@BeforeEach的区别
    @BeforeAll和@BeforeEach是JUnit5中的注解,用于在执行测试方法之前执行某些操作。@BeforeAll注解表示在所有测试方法执行之前执行一次,并且必须是静态方法。通常用于初始化测试环境,例如启动一个数据库连接池或者读取测试数据文件。@BeforeEach注解表示在每个测试方法执......
  • SqlServer数据库数据恢复
    故障服务器环境描述:一台故障服务器,因在正常运行中,意外断电,重启后发现SQLserver数据库的数据无法被读取。故障服务器分析检测:故障服务器进入系统发现是人为删除的,SQLserver数据库文件无法被读取,系统表被损坏,由于底层FileRecord被截断为0,无法找到文件开头,数据表结构也被损坏。......