自学内容网 自学内容网

有关EF Core

public class MyOwnDatabase : DbContext
{
    public MyOwnDatabase(string connectionStringOrDbName = "name=MyOwnDatabase")
        : base(connectionStringOrDbName)
    {
    }
}

: base(connectionStringOrDbName)

  • : base(...) 是在调用基类 DbContext 的构造函数。
  • 这里将 connectionStringOrDbName 传递给 DbContext 的构造函数,EF 会使用它来建立数据库连接。

动态指定连接字符串

using (var context = new MyOwnDatabase("Server=myServer;Database=myDb;User Id=myUser;Password=myPass;"))
{
    var user = new User { Name = "test", Password = "456" };
    context.Users.Add(user);
    context.SaveChanges();
}

"Server=myServer;Database=myDb;User Id=myUser;Password=myPass;"
这个连接字符串直接用于连接数据库,而不会使用配置文件中的默认连接字符串。

默认连接字符串

using (var context = new MyOwnDatabase())
{
    var user = new User { Name = "admin", Password = "123" };
    context.Users.Add(user);
    context.SaveChanges();
}


DbSet<T> 的作用

  1. 表示表

    • DbSet<T> 对应于数据库中的一个表,T 是映射到该表的实体类。
    • 例如:public DbSet<User> Users { get; set; }
    • 表示 User 实体类映射到数据库中的 Users 表。
  2. CRUD 操作

    • DbSet<T> 提供了对表中数据的增删改查功能。例如:
      • Add: 添加数据到表中。
      • Find: 根据主键查询数据。
      • Remove: 删除表中的数据。
      • 支持 LINQ 查询:通过 LINQ 查询语法,执行筛选、排序、聚合等操作。
  3. 动态生成 SQL

    • 在执行数据库操作时,Entity Framework 会根据对 DbSet<T> 的操作动态生成相应的 SQL 查询语句。

在应用程序中,你可以通过 DbSet<T> 对表中的数据进行操作。

1. 添加数据
 

using (var context = new MyOwnDatabase()) { var user = new User { Name = "admin", Password = "123" }; context.Users.Add(user); // 添加用户到 Users 表 context.SaveChanges(); // 保存更改到数据库 }

2. 查询数据
 

using (var context = new MyOwnDatabase()) { // 查询所有用户 var allUsers = context.Users.ToList(); // 根据条件查询用户 var specificUser = context.Users.FirstOrDefault(u => u.Name == "admin"); }

3. 更新数据
 

using (var context = new MyOwnDatabase()) { // 查询用户 var user = context.Users.FirstOrDefault(u => u.Name == "admin"); if (user != null) { user.Password = "456"; // 修改密码 context.SaveChanges(); // 保存更改 } }

4. 删除数据
 

using (var context = new MyOwnDatabase()) { var user = context.Users.FirstOrDefault(u => u.Name == "admin"); if (user != null) { context.Users.Remove(user); // 删除用户 context.SaveChanges(); // 保存更改 } }


原文地址:https://blog.csdn.net/weixin_73376914/article/details/144299370

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!