实体框架 – 如何首先将新表添加到现有数据库代码

前端之家收集整理的这篇文章主要介绍了实体框架 – 如何首先将新表添加到现有数据库代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本来我首先使用EF 6代码创建一个新的数据库和两个新的表.代码是:
public class TestingContext : DbContext,IDisposable
{
    public DbSet<CallDataRecord> CallDataRecords { get; set; }
    public DbSet<Attempt> Attempts { get; set; }

    public TestingContext()
        : base("Testing")
    {
        Database.SetInitializer<TestingContext>(new MigrateDatabaseToLatestVersion<TestingContext,GenericIVR.Migrations.Configuration>());
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Attempt>().Hasrequired(t => t.CallDataRecord).WithMany(a => a.Attempts).HasForeignKey(t => t.FKTaskId);

        modelBuilder.Entity<Attempt>().Property(x => x.AttemptId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).Isrequired();

        modelBuilder.Entity<CallDataRecord>().Property(x => x.TaskId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).Isrequired();
    }
}

现在我的策略改变了,我不想要一个新的DB.我想将新的表添加到现有的数据库,如DevDB.

如何更改代码?我必须先使用逆向工程代码吗?

更新:
连接字符串为:

<connectionStrings>
<add name="Testing" connectionString="Data Source=dddd.corporate.xxxx.com; Initial Catalog=Testing; User ID=sa; Password=password; MultipleActiveResultSets=True" providerName="System.Data.sqlClient" />

解决方法

如果您有自动迁移设置,这应该很直接.

如果没有,您将需要运行Enable-Migrations -EnableAutomaticMigrations
也许先进一步阅读这里,但是:http://msdn.microsoft.com/en-gb/data/jj554735.aspx

对于任何希望用新表更新数据库用户(例如,我想添加一个UserAttachment表与我现有的用户表一起使用)首先使用EF代码,请执行以下操作:

启用自动迁移后,您应该确保拥有…

1.)根据您的需要创建新的模型.

2.)创建您的配置文件,具体如下:

class UserAttachmentConfiguration : EntityTypeConfiguration<UserAttachment>
    {
        public UserAttachmentConfiguration()
            : base()
        {
            HasKey(p => p.UserId);
            ToTable("UserAttachment");    

            Hasrequired(t => t.User)
                .WithOptional(t => t.UserAttachment);                
        }
    }

3.)将您的DbSet和modelBuilder数据添加到您的主Context.cs文件

DbSet

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

模型构建器

modelBuilder.Configurations.Add(new UserAttachmentConfiguration());

4.)通过Visual Studio的Package Manager Console运行update-database,确保从下拉列表中选择了正确的项目,这很可能是一个名为project的.Repository.

您的新表现在应该存在于您的数据库中.

猜你在找的MsSQL相关文章