我想实现一个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。 –