想象一下这个场景:你正在开发一个电商网站🛒,产品数据、用户信息、订单记录都需要存储,手动写SQL语句?太麻烦了!这时候EF Core就像你的私人数据库管家🤵,帮你优雅地处理所有数据操作。
我们就来深入聊聊如何用EF Core配置数据库连接,让你从此告别繁琐的SQL拼接!✨
确保你的项目已经安装了必要的NuGet包:
dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.Design
根据你要连接的数据库类型,还需要安装对应的数据库提供程序:
# SQL Server dotnet add package Microsoft.EntityFrameworkCore.SqlServer # MySQL dotnet add package Pomelo.EntityFrameworkCore.MySql # PostgreSQL dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL # SQLite dotnet add package Microsoft.EntityFrameworkCore.Sqlite
连接字符串是EF Core连接数据库的"钥匙"🔑,通常包含服务器地址、数据库名、认证信息等。
var connectionString = "Server=localhost;Database=MyShop;User Id=sa;Password=123456;";
⚠️ 注意:实际项目中千万不要这样写!密码等敏感信息应该使用安全方式存储。
{ "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=MyShop;User Id=sa;Password=123456;" } }
然后在代码中读取:
var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); var connectionString = configuration.GetConnectionString("DefaultConnection");
DbContext是EF Core的核心,代表与数据库的会话。
public class ShopDbContext : DbContext { public DbSet<Product> Products { get; set; } public DbSet<Customer> Customers { get; set; } public DbSet<Order> Orders { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlServer(connectionString); } } }
💡 小技巧:实际项目中,建议使用依赖注入来配置DbContext,而不是在OnConfiguring中硬编码。
EF Core支持多种数据库,配置方式略有不同:
services.AddDbContext<ShopDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddDbContext<ShopDbContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), new MySqlServerVersion(new Version(8, 0, 26))));
services.AddDbContext<ShopDbContext>(options => options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
services.AddDbContext<ShopDbContext>(options => options.UseSqlite("Data Source=myshop.db"));
services.AddDbContext<ShopDbContext>(options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), sqlServerOptions => sqlServerOptions.EnableRetryOnFailure( maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null)));
services.AddDbContextPool<ShopDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")), poolSize: 128);
optionsBuilder.UseSqlServer(connectionString) .EnableSensitiveDataLogging() .LogTo(Console.WriteLine, LogLevel.Information);
配置完成后,可以通过简单代码测试连接是否正常:
using (var db = new ShopDbContext()) { if (db.Database.CanConnect()) { Console.WriteLine("🎉 数据库连接成功!"); } else { Console.WriteLine("❌ 无法连接到数据库"); } }
dotnet ef migrations add
和dotnet ef database update
现在你已经掌握了EF Core数据库连接配置的精髓!从简单的SQLite到企业级SQL Server集群,EF Core都能优雅应对,好的开始是成功的一半,正确的数据库连接配置是你数据访问层稳固的基石。
下次当你看到EF Core流畅地处理数据时,不妨给自己点个赞👍 - 因为你已经知道这背后的魔法是如何工作的了!
本文由 逯曼安 于2025-07-30发表在【云服务器提供商】,文中图片由(逯曼安)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/480223.html
发表评论