有关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>
的作用
-
表示表:
DbSet<T>
对应于数据库中的一个表,T
是映射到该表的实体类。- 例如:
public DbSet<User> Users { get; set; }
- 表示
User
实体类映射到数据库中的Users
表。
-
CRUD 操作:
DbSet<T>
提供了对表中数据的增删改查功能。例如:Add
: 添加数据到表中。Find
: 根据主键查询数据。Remove
: 删除表中的数据。- 支持 LINQ 查询:通过 LINQ 查询语法,执行筛选、排序、聚合等操作。
-
动态生成 SQL:
- 在执行数据库操作时,Entity Framework 会根据对
DbSet<T>
的操作动态生成相应的 SQL 查询语句。
- 在执行数据库操作时,Entity Framework 会根据对
在应用程序中,你可以通过 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)!