EF6如何创建含有多个实体类的DBContext Sqlite3帮助类进行增删改查,DBContext类中增加数据库连接操作
时间: 2024-02-06 14:10:33 浏览: 115
在 EF6 中,可以通过创建一个继承自 DbContext 的派生类,来表示一个数据库上下文。在这个派生类中,可以使用 DbSet<T> 属性来表示每个实体类对应的表,并在构造函数中设置数据库连接信息。
以下是一个示例代码,其中包含两个实体类(Person 和 Address),并使用 Sqlite 作为数据库引擎:
```csharp
using System.Data.Entity;
public class MyDbContext : DbContext
{
public DbSet<Person> Persons { get; set; }
public DbSet<Address> Addresses { get; set; }
public MyDbContext() : base("Data Source=mydatabase.db")
{
// 设置 Sqlite 数据库连接字符串
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// 配置实体类与表的映射关系等
}
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public virtual Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
}
```
在这个示例中,MyDbContext 类表示数据库上下文,Persons 和 Addresses 分别表示两个实体类对应的表。在构造函数中,使用 Sqlite 数据库连接字符串来设置数据库连接信息。同时,可以通过重写 OnModelCreating 方法来配置实体类与表的映射关系等。
对于增删改查操作,可以使用 DbSet<T> 属性提供的方法来实现。例如,可以使用以下代码来向 Persons 表中插入一条记录:
```csharp
using (var db = new MyDbContext())
{
var person = new Person { Name = "Tom", Age = 30 };
db.Persons.Add(person);
db.SaveChanges();
}
```
这个代码段中,首先创建了一个 MyDbContext 的实例,然后创建了一个新的 Person 实例,并将其添加到 Persons 表中。最后,通过调用 SaveChanges 方法来将修改保存到数据库中。其他的增删改查操作也可以类似地实现。
阅读全文