c# - 防止为 EF6 中的特定实体生成表

标签 c# .net entity-framework entity-framework-6 entity-framework-migrations

如何在我的数据库上下文初始化时禁用特定实体的表生成?

public class MyDbContext : DbContext {
    public DbSet<MyEntity> MyEntity{ get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder) {
        modelBuilder.Ignore<MyEntity>();
        base.OnModelCreating(modelBuilder);
    }
}

这段代码有帮助,但它完全排除了实体,我仍然需要查询它。

最佳答案

在查看迁移时,EF 将生成的代码(您的数据库结构)与之前生成的代码进行比较:实际上,它并没有每次都与原始数据库进行比较,因此无需过多赘述。

您应该能够通过创建新的迁移、删除/注释掉 UP 中的表创建代码和 DOWN 中的表删除代码以及应用空迁移来绕过它想要创建一个表。它在生成的代码中仍然有 View ,所以它不会尝试再次添加它。

关于c# - 防止为 EF6 中的特定实体生成表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37943808/

相关文章:

c# - 如何在 Rhino Mocks 中模拟 ReadOnlyCollection<T>?

c# - 浏览器cookies和C#cookies有关系吗

c# - 服务器无法验证请求

c# - 响应写输出问题

c# - EntityType 'Worker' 没有定义键。定义此 EntityType 的键

c# - 如何将 MD5 哈希转换为字符串并将其用作文件名

.net - 开源 Windows 窗体应用程序的建议控件?

.net - Azure 表存储中禁止的列名称

c# - Linq 和 EF 语法有什么区别?

c# - 如何将自定义方法添加到 Entity Framework 中的自动生成类?