Entity Framework CodeFirst opóźnione
Uczę się o Entity Framework i obecnie napotykam na problem, w którym potrzebuję około 10 sekund na odzyskanie danych z bazy danych lub zaktualizowanie wiersza, tak jakby mój kod był na pewien czas zablokowany, nawet jeśli debugowanie wszystkiego poszło normalnie.
Sam kod działa, poza tym opóźnieniem, zgodnie z oczekiwaniami.
Szukając w Google i tutaj nie znalazłem innych osób z tym problemem związanych z Entity Framework.
Myślę, że może to ma coś wspólnego z moimCodeFirstMySQLEntities
konstruktor klasy, ale nie jestem pewien.
Gdyby ktoś dał mi wskazówki, byłbym wdzięczny.
To jest główny kod:
namespace CodeFirstMySQL
{
class Program
{
static void Main(string[] args)
{
UserRepository userRepository = new UserRepository();
userRepository.Update("Klein", "OtherName");
//delay experienced here
Console.WriteLine("done");
Console.ReadLine();
}
}
}
To jest kod DbContext:
namespace CodeFirstMySQL.Database
{
public class CodeFirstMySQLEntities : DbContext
{
public CodeFirstMySQLEntities() : base("CodeFirstMySQLEntities") { }
public DbSet<UserModel> Users { get; set; }
}
}
To jest kod UserModel:
namespace CodeFirstMySQL.Database.Models
{
public class UserModel
{
[Key, StringLength(100)]
public string firstName { get; set; }
[StringLength(100)]
public string lastName { get; set; }
}
}
To jest kod repozytorium:
namespace CodeFirstMySQL.Database.Repositories
{
public class UserRepository
{
public void Insert(UserModel user)
{
using (var context = new CodeFirstMySQLEntities())
{
context.Users.Add(user);
context.SaveChanges();
}
}
public void Delete(string firstName)
{
using (var context = new CodeFirstMySQLEntities())
{
UserModel user = context.Users.FirstOrDefault(x => x.firstName == firstName);
context.Users.Remove(user);
context.SaveChanges();
}
}
public void Update(string lastNameOld, string lastNameNew)
{
using (var context = new CodeFirstMySQLEntities())
{
UserModel user = context.Users.FirstOrDefault(x => x.lastName == lastNameOld);
user.lastName = lastNameNew;
context.SaveChanges();
}
}
public IList<UserModel> GetUsers()
{
using (var context = new CodeFirstMySQLEntities())
{
return context.Set<UserModel>().ToList();
}
}
}
}
Ciąg połączenia:
<connectionStrings>
<add name="CodeFirstMySQLEntities" connectionString="Server=localhost; Database=CodeFirst; Uid=root; Pwd=" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>