【问题标题】:Entity Framework entity can't be found in dbcontext auto-generated code在 dbcontext 自动生成的代码中找不到实体框架实体
【发布时间】:2017-03-27 15:01:56
【问题描述】:

我使用实体框架 6.1.3 模型优先方法。 我需要设计一个简单的模型为following

然后我生成了 sql 来创建数据库,但我发现我的实体集没有在我的 DbContext 中定义。我尝试手动添加它们,但实体框架不断重新生成以下代码。 它只生成与它的设计目的完全相反的抽象实体。

public partial class UploadsDataModelContainer : DbContext
{
    public UploadsDataModelContainer()
        : base("name=UploadsDataModelContainer")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }
    public virtual DbSet<AzureBlobs> AzureBlobs { get; set; }
}

这是 EF 代码生成器中的错误还是我错过了模型创建的步骤?

【问题讨论】:

  • 您可能希望将这两种子类型映射到它们自己的表。请参阅 TPH 与 TPT 或 TPC 继承。并在设计器中添加实体集名称。
  • 如果需要,因为 Visual Studio 会生成部分类,您可以添加具有相同 UploadsDataModelContainer 上下文的新文件并添加相关属性: public DbSet Uploads { get;放; }
  • @RicardoPeres 是的,我会尝试并给你反馈。谢谢。
  • @RicardoPeres 你的建议对我很有效。你节省了我的时间。

标签: c# sql visual-studio entity-framework


【解决方案1】:

感谢 RicardoPeres,我添加了一个包含以下内容的类文件,它通过避免自动更新 DbContext.cs 文件解决了我的问题:

    public partial class UploadsDataModelContainer : DbContext
{

    public virtual DbSet<Chunk> CHunks { get; set; }
    public virtual DbSet<Upload> Uploads { get; set; }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多