【问题标题】:Single table accross multiple DbContext classes using EF6 Code First使用 EF6 Code First 跨多个 DbContext 类的单个表
【发布时间】:2014-10-09 19:26:03
【问题描述】:

在我的应用程序中,我有 2 个针对同一个 SQL 数据库的上下文。一种上下文用于我的 AspNet 身份表,另一种用于应用程序的其余部分。我想做的是在我的ApplicationContext 中提供我的“用户”表(用于IdentityDbContext 中的IdentityUser 类)。我正在使用 Code First Migrations 并且不希望 ApplicationContext 尝试创建(或修改)该表 - 我只是希望它“了解”它并能够查询并将其加入其他表但希望它被忽略由MigrateDatabaseToLatestVersion<ApplicationContext, Configuration>() 初始化程序或从包管理器控制台发出update-database 时。

我发现了一些类似的问题,但没有合适的答案。

【问题讨论】:

    标签: entity-framework ef-code-first code-first entity-framework-migrations


    【解决方案1】:

    在这种情况下,我认为,您必须创建一个单独的 DbContext,其中包含所有 DbSets 中的所有 DbContexts,并使用此主 DbContext 进行迁移。 如果您希望某些实体在某些上下文中是只读的(在您的情况下为User),您可以定义实体的DbSet 如下

    public ApplicationContext:DbContext
    {
        ...
        public DbSet<User> Users { get; private set; }
    }
    

    private 用于 DbSet 的设置器,因为它可以由 Entity Framework 设置,但不能由用户设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 2016-02-06
      相关资源
      最近更新 更多