我想實現一個ASP.NET MVC應用程序4,首先使用的EntityFramework代碼。其實我有2個數據上下文,一個自定義和默認的UsersContext。的EntityFramework代碼優先遷移
namespace Namespace.Models
{
public class StoreDB : DbContext
{
public DbSet<Supplier> Suppliers { get; set; }
public DbSet<Vendor> Vendors { get; set; }
public DbSet<Product> Products { get; set; }
}
}
和
大概聲明public UsersContext() : base("StoreDB")
是錯誤的。但是,當我離開默認值: base("DefaultConnection")
時,創建了一個DefaultConnection
數據庫,當然,我只想要一個名爲「StoreDB」的數據庫。
我做了一些改變,以屬於UsersContext
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public DateTime? DoB { get; set; }
}
的UserProfile
我更新在Global.asax如下:
Database.SetInitializer(new Namespace.Models.StoreDbInitializer());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Namespace.Models.UsersContext>());
但是當我運行應用程序,我得到這個錯誤:
CREATE DATABASE permission denied in database 'master'.
爲什麼它試圖創建數據庫「大師」?
我的連接字符串如下:
<add name="StoreDB"
connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=MyDB; Integrated Security=SSPI; MultipleActiveResultSets=True"
providerName="System.Data.SqlClient"/>
如果我沒有記錯的話,也有加入數據庫SQL Server實例時,寫入表中的主數據庫的條目。話雖如此,如果你嘗試創建一個數據庫,你需要擁有主數據庫的權限。 [微軟的主DB頁(http://msdn.microsoft.com/en-us/library/ms187837.aspx) –
嗨,但我的目標是不使用主數據DB ..我想用我自己的。我「M已經怕我會與EF問題時,我會轉移到生產..如果我沒有對數據庫的控制,我想我會改變一切:( – Davide
主數據庫中保存的所有數據庫的列表所以當你連接到你的數據庫'StoreDB'時,SQL Server將在主數據庫中查找該數據庫的條目以及其他權限(根據我的理解,它不再保存在主數據庫中) 。基本上,你不能沒有主數據庫的SQL Server。 –