如何使用Asp.net MVC中的代码优先方法更新模型和数据库

时间:2013-08-19 07:51:46

标签: asp.net .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我是mvc的新手。我创建了一个MVC应用,其中我使用了code first方法。现在我有两张桌子交易评论。现在,我想在数据库中添加新表类别,在交易表中添加新列 categoryId

我如何更新数据库和模型?

我使用Sql Server 2008 R2作为数据库。

我关注了课程结构:

      namespace FBWebApp.Models
    {
        public class Deal
      {
        public int ID { get; set; }                 // ID
        public string Title { get; set; }           // Titolo del deal   
        public string Description { get; set; }     // Descrizione dell'annuncio
        public string FacebookUID { get; set; }     // UID facebook dell'utente
        public string Visibility { get; set; }      // Visibility
        public string Category { get; set; }
        public int Option1 { get; set; }
        public int Option2 { get; set; }
        public int Option3 { get; set; }
        public int Option4 { get; set; }
        public string PhotoURL { get; set; }    // URL of the facebook photo profile 
        public string Name { get; set; }        // Name of the user
        public string ProfileUrl { get; set; }  // URL of the facebook profile
        public string Photo1 { get; set; }  // URL of the Photo1 (local )
        public string Photo2 { get; set; }
        public string Photo3 { get; set; }
        public string Photo4 { get; set; }
        public string Photo5 { get; set; }
    }
    public class Comment
    {
        [Key]
        public int CommentId { get; set; }
        public string CommentText { get; set; }
        public int ID { get; set; }
        [ForeignKey("ID")]
        public Deal DelNav { get; set; }
    }

    public class DealDBContext : DbContext
    {

        public DealDBContext() : base("DealDBContext") { }
        public DbSet<Deal> Deals { get; set; }
        public DbSet<Comment> Comments { get; set; }

    }
}

2 个答案:

答案 0 :(得分:1)

首先添加你的模型:

public class Category
{
  public int ID { get; set; }
  public int cateName { get; set; }
}
Deal课程中的

public class Deal
    {
        //..
         [ForeignKey("CatId")]
         public virtual Category Category { get; set; }
    }

Enable Migration之后,您应该在控制台管理器中使用此命令来更新数据库:

update-database

答案 1 :(得分:1)

尝试在程序包管理器控制台中使用“update-database -force -verbose”。

如果它不起作用,请修改迁移,但键入“add-migration somename”,它将显示在“迁移”文件夹中。

如果您是MVC和EF的新手,请务必查看本教程。它解释了所有这些以及您需要知道的所有其他事项:

http://pluralsight.com/training/Player?author=scott-allen&name=mvc4-building-m1-intro&mode=live&clip=0&course=mvc4-building