asp.net core连接数据库1

本文介绍如何使用 Entity Framework Core (EF Core) 进行数据库操作,包括安装 EF Core、定义数据模型、创建数据库上下文及配置数据连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装Entity Framework Core

在程序管理器控制台运行:

Install-package Microsoft.EntityFrameWorkCore.Sqlserver

运行:Install -package  Microsoft.EntityFrameworkCore.Tools

2.创建一C#对象代表要查询和保存上的数据:

Blog类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;


namespace testDB.Models
{
    public class Blog
    {
        public Blog()
        {
            Post = new HashSet<Post>();
        }

        public int BlogId { get; set; }
        public string Url { get; set; }

        public virtual ICollection<Post> Post { get; set; }
    }
}

Post类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace testDB.Models
{
    public class Post
    {
        public int PostId { get; set; }
        public int BlogId { get; set; }
        public string Content { get; set; }
        public string Title { get; set; }

        public virtual Blog Blog { get; set; }
    }
}
 

创建BlogController添加数据库上下文

数据库上下文:

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;


namespace testDB.Models
{
    public class BloggingContext:DbContext
    {
        #region Constructor
        public BloggingContext(DbContextOptions<BloggingContext> options)
            : base(options)
        { }
        #endregion

        public virtual DbSet<Blog> Blog { get; set; }
        public virtual DbSet<Post> Post { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Blog>(entity =>
            {
                entity.Property(e => e.Url).IsRequired();
            });

            modelBuilder.Entity<Post>(entity =>
            {
                entity.HasOne(d => d.Blog)
                    .WithMany(p => p.Post)
                    .HasForeignKey(d => d.BlogId);
            });
        }


    }
}

Startup.cs文件:

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            var connection = @"Server=JOAN-PC;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0;uid=sa;pwd=abcd1234...";
            services.AddDbContext<Models.BloggingContext>(options => options.UseSqlServer(connection));
        }







### 如何在 ASP.NET Core 中配置和使用数据库连接 #### 配置数据库连接字符串 为了使应用程序能够访问 SQL Server 数据库,在 `appsettings.json` 文件中定义连接字符串是一个常见的做法。这允许开发者根据不同环境轻松切换不同的数据库设置。 ```json { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDbName;Trusted_Connection=True;" } } ``` 上述 JSON 片段展示了如何声明一个名为 `DefaultConnection` 的连接串[^1]。 #### 注册数据库上下文服务 接着,需要通过依赖注入机制注册用于管理数据库交互的服务。对于 Entity Framework Core 或者像 SqlSugar 这样的第三方 ORM 工具来说,通常是在 `Startup.cs` 或者新的 .NET 6/7 应用中的 `Program.cs` 文件里完成这项工作。 当采用 SqlSugar 来作为数据层框架时,可以按照下面的方法向 DI 容器添加 ISqlSugarClient 单例: ```csharp builder.Services.AddSingleton<ISqlSugarClient>(s => { var sqlSugar = new SqlSugarScope(new ConnectionConfig() { DbType = SqlSugar.DbType.SqlServer, ConnectionString = builder.Configuration.GetConnectionString("DefaultConnection"), IsAutoCloseConnection = true }); return sqlSugar; }); ``` 这段 C# 代码片段说明了怎样初始化并配置 SqlSugar 实例以便在整个应用生命周期内共享同一个客户端对象[^2]。 #### 使用已配置的数据库连接执行查询或其他操作 一旦完成了前面两步的工作之后,就可以利用已经准备好的工具来进行实际的数据读写活动了。比如可以在某个静态类里面编写方法来填充缓存列表或者其他业务逻辑所需的数据集合。 ```csharp public class PublicDataBuffer { public static List<EnvironmentRecord> DataBuffer = new(); public static void InitDataBuffer(ISqlSugarClient dbClient) { DataBuffer.AddRange( dbClient.Queryable<EnvironmentRecord>() .Take(100) .ToList()); } } ``` 这里展示了一个简单的例子,它会从数据库获取最多前一百条记录并将它们加入到内存缓冲区中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值