そのため、突然このエラーが発生しましたが、解決方法がわかりません。MyDomain\MyUser
はサーバーユーザーの下に表示されますが、CodeFIrstを使用しているため、データベースがまだ作成されていないためMyDatabase
、ユーザーに追加できません。
これが私のコードです:
ConnectionString:
<add name="MyDatabaseConnection" connectionString="Data Source=myServer; Database=MyDatabase.sdf;Trusted_Connection=True;Persist Security Info=True;Pooling=false" providerName="System.Data.SqlClient" />
コード:
public class MyDbContext: DbContext
{
public MyDbContext()
: base("MyDatabaseConnection")
{
}
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserConfiguration());
}
}
public class UserConfiguration : EntityTypeConfiguration<User>
{
public UserConfiguration()
{
ToTable("User");
Property(u => u.ID).HasColumnName("UserID").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
}
protected void Application_Start()
{
Database.SetInitializer<MyDbContext>(new MyDbContextInitializer());
using (MyDbContext db = new MyDbContext())
{
db.Database.Initialize(false);
}
...
}
public class MyDbContextInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{
protected override void Seed(MyDbContextcontext)
{
base.Seed(context);
SeedMembership();
}
private void SeedMembership()
{
WebSecurity.InitializeDatabaseConnection(ConfigurationManager.ConnectionStrings["MyDatabaseConnection"].ConnectionString, "System.Data.SqlClient", "User", "UserID", "UserName", true);
WebSecurity.CreateUserAndAccount("doe1", "password11", new { FirstName = "John", LastName = "Doe" });
}
}