CodeFirst: Datenbank kann Nicht geöffnet werden "MyDatabase" die von der Anmeldung angeforderte. Die Anmeldung ist fehlgeschlagen. Login fehlgeschlagen für Benutzer "MyDomain\MyUser'
Also ich habe immer diese Fehlermeldung plötzlich, und ich habe keine Ahnung, wie es zu lösen. MyDomain\MyUser
ist zu finden unter server-Benutzer, aber da bin ich mit CodeFIrst, die Datenbank ist noch nicht, also kann ich nicht hinzufügen MyDatabase
an den Benutzer.
Hier ist mein code:
ConnectionString:
<add name="MyDatabaseConnection" connectionString="Data Source=myServer; Database=MyDatabase.sdf;Trusted_Connection=True;Persist Security Info=True;Pooling=false" providerName="System.Data.SqlClient" />
Code:
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" });
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte ein ähnliches Problem, ändern Sie die Verbindungszeichenfolge zu:
So entfernen Sie
Persist Security
undPooling
. Sehen, ob das funktioniert