Entity framework 实体框架代码首次迁移现有表

Entity framework 实体框架代码首次迁移现有表,entity-framework,code-first,entity-framework-migrations,Entity Framework,Code First,Entity Framework Migrations,我有一个(奇怪的)情况。 我首先使用实体框架代码,但我必须附加到现有数据库 我不必映射对象模型中数据库的每个表。因此,我希望在需要时迁移单个表。 我试着更好地解释。我的数据库有大约100个表,但我需要在我的模型中只映射3或4个表。我已经用c#创建了我的类,现在我想用我需要的表映射这些类 有可能吗?我必须迁移吗 更新 这是我的班级: public class PricePlan { public Guid Id { get; set; } public String Name {

我有一个(奇怪的)情况。 我首先使用实体框架代码,但我必须附加到现有数据库

我不必映射对象模型中数据库的每个表。因此,我希望在需要时迁移单个表。 我试着更好地解释。我的数据库有大约100个表,但我需要在我的模型中只映射3或4个表。我已经用c#创建了我的类,现在我想用我需要的表映射这些类

有可能吗?我必须迁移吗

更新 这是我的班级:

public class PricePlan
{
    public Guid Id { get; set; }
    public String Name { get; set; }
    public Double ActivationPrice { get; set; }
}
以下是上下文:

public class PublicAreaContext : DbContext 
{
    public DbSet<PricePlan> PricePlans { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<PricePlan>()
            .HasKey(pp => new { pp.Id });

        base.OnModelCreating(modelBuilder);
    }
}
可能:是的

迁移:否。如果您需要迁移,您可能会遇到问题,因为在这种情况下,您没有uu migrationHistory表(因为数据库“existing”而不是“created by EF”)

但答案肯定是肯定的


创建您的类,创建一个包含DbSet的DbContext,“et voilá”。

这还不够。。。当我尝试对数据库表进行插入时,我得到以下消息:
支持“PublicAreaContext”上下文的模型自数据库创建以来已更改。考虑使用代码第一迁移来更新数据库。给我2分钟,我更新问题您的数据库中是否有uu migrationHistory表?这意味着数据库不“存在”。您是否有权访问对应于数据库的上下文类?否则,您可以使用
Database.SetInitializer(null)奇怪,我已经解决了删除
\u迁移历史记录
并启动以下命令的问题:
包管理器控制台中更新数据库-verbose-StartUpProjectName MyProject
不奇怪:危险。有一个访问数据库的历史上下文(创建u migrationHistory表的上下文)。现在,这个上下文和依赖它的应用程序可能会变得不稳定。
ALTER TABLE [dbo].[PricePlan](
    [Id] [uniqueidentifier] NOT NULL,
    [Name] [varchar](50) NULL,
    [ActivationPrice] [decimal](5, 2) NULL,
    ... //Other columns
 CONSTRAINT [PK_Price_Plans] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]