EFCore连接SQL数据库

  1. 首先创建c#控制台项目(以.net6为例)

  1. 安装以下NuGet包

注意:安装NuGet包时注意版本号不能高于.net的版本号

  1. 在项目下创建appsettings.json文件

  1. 在appsettings.json中建立以下代码

Server为数据库服务器地址;Initial Catalog为数据库名。

  1. 获取查询表的属性,以UserData.cs为例:

在UserData.cs中输入以下代码获取UserData表的属性:

public  class UserData
    {
        [Key]
        public int UserId { get; set; }
        public string UserName { get; set; }

        public string Password { get; set; }
    }
  1. 建立FirstDbContext.cs类作为数据库上下文连接:

在FirstDbContext.cs中插入以下代码(创建模型):

namespace Learn.Db.Db
{
    public class FirstDbContext : DbContext
    {
        public DbSet<UserData> UserData { get; set; }

        private IConfiguration configuration;

        public FirstDbContext()
        {
            configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(configuration.GetConnectionString("Default"));
        }
    }
}
  1. 在程序包管理器控制台输入以下代码:

Add-Migration MyCodeFirst

运行成功后会出现以下文件:

表名我们的数据库已经连接成功。

### 使用 EF Core 连接 SQL Server 数据库 #### 创建项目并安装必要的 NuGet 包 为了使用 Entity Framework Core (EF Core),需要创建一个新的 .NET Core 控制台应用程序或其他类型的 ASP.NET Core 应用程序。接着,在解决方案资源管理器中右键单击项目名称,选择“管理NuGet包”,然后搜索并安装 `Microsoft.EntityFrameworkCore.SqlServer` 和 `Microsoft.EntityFrameworkCore.Tools`。 ```bash dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools ``` #### 配置数据库上下文类 定义一个继承自 DbContext 的新类来表示要使用的数据库模型。在这个例子中假设有一个名为 BloggingContext 的类[^2]: ```csharp using Microsoft.EntityFrameworkCore; public class BloggingContext : DbContext { public DbSet<Blog> Blogs { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer( @"Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;"); } ``` 这里配置了一个本地的 SQL Server 实例作为目标数据库,并启用了 Windows 身份验证。 #### 定义实体类 接下来定义一些用于映射表结构的数据对象(即实体)。例如下面是一个简单的博客文章实体类: ```csharp public class Blog { public int BlogId { get; set; } public string Url { get; set; } public List<Post> Posts { get; } = new(); } public class Post { public int PostId { get; set; } public string Title { get; set; } public string Content { get; set; } public int BlogId { get; set; } public Blog Blog { get; set; } } ``` 这些属性对应于数据库中的列名;而导航属性允许轻松访问关联的对象集合。 #### 初始化迁移和更新数据库 通过命令行工具执行以下命令来自动生成初始迁移文件并将更改应用到实际存在的数据库上[^5]: ```powershell Add-Migration InitialCreate Update-Database ``` 这会基于当前代码首次设置好所需的架构。 #### 查询数据 最后一步就是编写具体的业务逻辑来进行增删改查操作了。比如获取所有的博客记录可以这样写[^4]: ```csharp using var context = new BloggingContext(); var blogs = from b in context.Blogs orderby b.Url select b; foreach (var item in blogs) { Console.WriteLine(item); } ``` 上述过程展示了如何利用 EF Core 来快速搭建起与 SQL Server 数据库之间的桥梁,从而更高效地完成 CRUD 操作以及复杂查询等功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值