我有一些简单的DbContext:ASP.NET MVC 4 WebSecurity种子
public class AuthContext : DbContext
{
public AuthContext() : base("AuthContext")
{
}
public DbSet<User> Users { get; set; }
}
和简单的用户模型:
[Table("User")]
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string Login { get; set; }
}
我需要的是总是或模型创建后播种数据WebSecurity。我曾尝试:
Database.SetInitializer(new AuthDbSeeder());
// ------------------------------------- -------------------
<add name="AuthContext" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=ChatAuth; Integrated Security=SSPI; MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
和<system.web>
我说:
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
// --------- -----------------------------------------------
public class AuthDbSeeder : DropCreateDatabaseAlways<AuthContext>
{
protected override void Seed(AuthContext context)
{
WebSecurity.InitializeDatabaseConnection("AuthContext", "User", "UserId", "Login",
autoCreateTables: true);
WebSecurity.CreateUserAndAccount("Sergey", "1234");
但毕竟我有错误,数据库不能因为它已被使用而被放弃。我需要一些工作方法为WebSecurity创建数据。 对我来说对我来说同样重要的是:我如何可以将我的自定义模型添加到相同的DbContext中,并将种子数据正确地添加到此上下文中。
还有任何想法我可以单元测试WebSecurity?