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