0
我试图在新的实体框架中使用代码优先方法,但数据库中的表不会自动创建。代码EF中的第一种方法不适用于我
我已经创建了数据库(在App_Code文件夹中),我使用Code First方法。请解释一下,我需要首先在数据库中创建表格,还是应该自动创建表格?
下面是我的项目
的描述在Web.config我有2个连接字符串:
add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"
add name="MyDB"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI; AttachDBFilename=|DataDirectory|MyDB.mdf;User Instance=true"
providerName="System.Data.SqlClient"
类描述我对象(在模型文件夹)
public class UserProfile
{
[Key]
[Required]
public string PhoneNumber { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string MiddleName { get; set; }
[Required]
public string Surname { get; set; }
[Required]
public DateTime Birthday { get; set; }
public int PositionId { get; set; }
public string Boss { get; set; }
[Required]
public int CompanyId { get; set; }
}
的DbContext类(在Model文件夹中)
public class MyDB : DbContext
{
//public MyDB() : base("MyDB") { }
public DbSet<UserProfile> UserProfiles { get; set; }
}
在控制器尝试向数据库中插入新的(&第一个)记录(表格不存在)。
UserProfile newProfile = new UserProfile();
newProfile.CompanyId = 1;
newProfile.PhoneNumber = model.PhoneNumber;
newProfile.FirstName = model.FirstName;
newProfile.MiddleName = model.MiddleName;
newProfile.Surname = model.Surname;
newProfile.Birthday = Convert.ToDateTime(model.Birthday);
var myDb = new Models.MyDB();
myDb.UserProfiles.Add(newProfile);
myDb.SaveChanges();
当我试图调用SaveChanges()
我得到一个异常:
异常详细信息:System.Data.SqlClient.SqlException:无效的对象名称dbo.UserProfiles“。
尝试删除两个连接字符串。其实它应该会自动创建数据库。 – 2011-12-16 07:33:00