使用Razor Engine和EF Code First创建MVC应用程序

时间:2012-07-07 20:59:00

标签: asp.net-mvc entity-framework razor ef-code-first

我正在练习实体框架。我正在使用Razor Engine和EF Code First练习Asp.net MVC框架。在练习中,我发现几乎没有问题。问题是实体框架不会在我的SQL中创建数据库。 我在MSSQL 2008上使用VisualStudio 2011 Beta版。我不知道问题是什么。 需要帮助。以下是我的代码:

    Person.cs

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;

namespace MvcDemo.Data
{
    public class Person
    {
        [Key]
        public int PersonID { get; set; }

        [Required]
        [StringLength(40)]
        public string FirstName { get; set; }

        [Required]
        [StringLength(30)]
        public int LastName { get; set; }

        public int? Age { get; set; }

        [ForeignKey("PrefixID")]
        public Prefix Prefix { get; set; }


        [Required]
        public int PrefixID { get; set; }

    }
}

    Prefix.cs

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;

namespace MvcDemo.Data
{
    public class Prefix
    {
        public int PrefixID { get; set; }

        [Required]
        [StringLength(20)]
        public string PrefixName { get; set; }
    }
}

MvcContext.cs

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using MvcDemo.Data;


namespace MvcDemo.DataAccess
{
    public class MvcContext : DbContext
    {
        public MvcContext()
            : base("name = MvcDemoApp")
        {
        }
        public DbSet<Person> People { get; set; }

        public DbSet<MvcDemo.Data.Prefix> Prefix { get; set; }

    }
}

ConnectionString:
<connectionStrings>
    <add name="MvcDemoApp" 
         connectionString="Server=.;Initial Catalog=MvcDemoApp;Integrated Security=true" 
  providerName="System.Data.SqlClient" />

3 个答案:

答案 0 :(得分:1)

如果这是您的所有代码,则不会创建数据库也就不足为奇了。没有代码对数据库执行命令。一旦你开始迭代,例如MvcContext.People或者做一些插入,你会发现数据库已经创建了。

答案 1 :(得分:1)

网上有很多分步示例。我会选择其中一个然后去做;你可以尝试这个例子:http://msdn.microsoft.com/en-us/data/gg685467.aspx。它应涵盖大部分基础知识,以帮助您入门。

如果您更喜欢视频而不是文字,请搜索Channel 9pluralsight

答案 2 :(得分:0)

您应该操作包管理器控制台来执行此操作。

打开包管理器控制台窗口并运行“update-database”命令,此命令中仍然存在错误,因此您需要在DbContext文件中指定“startupprojectname”参数来执行它和连接字符串。