我正在尝试实现一个 ASP.NET MVC 4 应用程序,首先使用 Entityframework 代码。实际上我有 2 个数据上下文,一个自定义的和默认的 UsersContext。
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 class UsersContext : DbContext
{
public UsersContext() : base("StoreDB")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
}
很可能这个说法public UsersContext() : base("StoreDB")
是错误的。但是当我离开默认值时,创建: base("DefaultConnection")
了一个DefaultConnection
数据库,当然,我只想要一个名为“StoreDB”的数据库。
UserProfile
我对属于的进行了一些更改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; }
}
我更新了 Global.asax 如下:
Database.SetInitializer(new Namespace.Models.StoreDbInitializer());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Namespace.Models.UsersContext>());
但是当我运行应用程序时,我得到了这个错误:
CREATE DATABASE permission denied in database 'master'.
为什么要在“master”下创建数据库?
我的连接字符串如下:
<add name="StoreDB"
connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=MyDB; Integrated Security=SSPI; MultipleActiveResultSets=True"
providerName="System.Data.SqlClient"/>