я задаюсь вопросом, что было бы лучше, практика в этом сценарии:Entity Framework + «используя» шаблон передовой практики
У меня есть метод, который вызывает другой метод в использовании заявление (одноразовая Database Context), а другой метод также необходимо получить доступ к контексту базы данных, так что это вариант 1:
using (var db = new Database())
{
// some code here
//calling other function
var cnt = SomeFunction();
}
int SomeFunction()
{
using (var db = new Database())
{
// some code here for example:
return db.Users.Count();
}
}
А вот вариант 2:
using (var db = new Database())
{
// some code here
//calling other function
var cnt = SomeFunction(db);
}
int SomeFunction(Database db)
{
return db.Users.Count();
}
Примечание: Database
выглядит л. как это:
public class Database : IdentityDbContext<User>
{
public Database()
: base("DefaultConnection", throwIfV1Schema: false)
{
Configuration.LazyLoadingEnabled = true;
}
public DbSet<IdentityUser> AspNetUsers { get; set; }
}
Я бы с вариантом 2, потому что нет никакой необходимости для инициализации контекста базы данных снова, но я не уверен, что это правильный способ сделать это.
Я бы также пошел с опцией '2', но по лучшей причине: вы можете использовать' SomeFunction' интерфейс вместо конкретного типа базы данных. –