gpt4 book ai didi

c# - 关于 DbSet 和 DbContext

转载 作者:IT王子 更新时间:2023-10-29 03:59:34 25 4
gpt4 key购买 nike

看到一段代码,把DbSetDbContext混在一起了。我不擅长 Entity Framework 。我认为它们是不同的东西。

有人能给我一点解释吗?

public class testContext : DbContext
{
public testContext();

public string IPAddress { get; set; }
public DbSet<WSettings> Settings { get; set; }
public string UserName { get; set; }

public override int SaveChanges();
}

最佳答案

直观上,DbContext 对应于您的数据库(或数据库中的表和 View 的集合),而 DbSet 对应于数据库中的表或 View 。因此,您将获得两者的结合是完全有道理的!

您将使用 DbContext 对象来访问您的表和 View (将由 DbSet 表示),并且您将使用您的 DbSet 来访问、创建、更新、删除和修改您的表数据。

如果您的数据库中有 10 个表,并且您的应用程序使用其中的 5 个(我们称它们为表 1 - 表 5),那么使用 MyAppContext 对象访问它是有意义的,其中 MyAppContext 类定义如下:

public class MyAppContext : DbContext
{
public MyAppContext () : ;

public DbSet<Table1> Table1 { get; set; }
public DbSet<Table2> Table2 { get; set; }
public DbSet<Table3> Table3 { get; set; }
public DbSet<Table4> Table4 { get; set; }
public DbSet<Table5> Table5 { get; set; }
}

请注意,例如,标识符 Table1 既用作类型名称,又用作已定义上下文类型中的属性名称。你在上面看到的是非常典型的。下面给出了对应于表模式的类的示例:

public class Table1 
{
public int Id {get; set;}
public string AStringField {get; set;}
//etc.
}

查看此处了解更多信息:http://entityframeworktutorial.net/

关于c# - 关于 DbSet 和 DbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13627829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com