我正在练习实体框架。我正在使用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" />
答案 0 :(得分:1)
如果这是您的所有代码,则不会创建数据库也就不足为奇了。没有代码对数据库执行命令。一旦你开始迭代,例如MvcContext.People
或者做一些插入,你会发现数据库已经创建了。
答案 1 :(得分:1)
网上有很多分步示例。我会选择其中一个然后去做;你可以尝试这个例子:http://msdn.microsoft.com/en-us/data/gg685467.aspx。它应涵盖大部分基础知识,以帮助您入门。
如果您更喜欢视频而不是文字,请搜索Channel 9或pluralsight
答案 2 :(得分:0)
您应该操作包管理器控制台来执行此操作。
打开包管理器控制台窗口并运行“update-database”命令,此命令中仍然存在错误,因此您需要在DbContext文件中指定“startupprojectname”参数来执行它和连接字符串。