【问题标题】:Entity Framework does not generate dbset for a table. What is the reason?Entity Framework 不会为表生成 dbset。是什么原因?
【发布时间】:2021-05-20 16:29:28
【问题描述】:

使用 Entity Framework 6,每次更改数据库时,我都会转到 .edmx 文件并从数据库中更新模型。实体类下会生成一个dbset,供我调用LINQ。但不知什么原因,我添加的表没有对应的DbSet。结果我什么都做不了。

这个问题的原因是什么?

该表在标识列上有一个主键。

一般情况下,我会这样做

public void MakeSomething() {
   using (var db = new WWWEntities()) {
      Something s = new Something() {
         info1 = "",
         info2 = ""
      };
      db.Somethings.Add(s); 
      db.SaveChanges();
   }
}

但是现在db.Somethings不存在了。

【问题讨论】:

  • @mjwills,我已经完成了你提到的帖子中的所有步骤。这就是为什么我不知道问题出在哪里,该怎么办。
  • 请向我们展示您的 edmx 模型的屏幕截图,其中包括您的新表格。
  • @mjwills,给你。表名是StageEng,位于右上角。我无法展示全部内容,因为它非常大(大约 300 张桌子)!(cnow.co/ttt.png)。
  • 请用您正在尝试的真实代码更新您的问题。

标签: c# entity-framework


【解决方案1】:

已修复。由于Entities 是一个分部类,我在另一个分部类中添加了DBSet,以便我可以访问该表

public partial class WWWEntities2 : DbContext
    {
        public WWWEntities2(String connectionString)
            : base(connectionString)
        {
        }

        public DbSet<StageEng> StageEng { get; set; }
    }

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2013-12-28
    • 2012-01-27
    • 2019-03-09
    • 2011-11-11
    相关资源
    最近更新 更多