У меня есть класс DataContext (который наследует DbContext)
public class DataContext : DbContext
{
public DataContext() : base("Default")
{
}
public DbSet<Scale> Scales { get; set; }
public DbSet<Administrator> Administrators { get; set; }
public DbSet<User> Users { get; set; }
}
Также у меня есть класс BusinessContext, в котором я выполняю все операции с базой данных, такие как добавление новой, редактирование и удаление сущности.
public sealed class BusinessContext : IDisposable
{
private readonly DataContext context;
private bool disposed;
public BusinessContext()
{
context = new DataContext();
}
public DataContext DataContext
{
get
{
return context;
}
}
#region ScaleScenarios
public void AddNewScale(Scale scale)
{
context.Scales.Add(scale);
context.SaveChanges();
}
public void UpdateScale(Scale scale)
{
context.Entry(scale).CurrentValues.SetValues(scale);
context.SaveChanges();
}
public ICollection<Scale>GetAllScales()
{
return context.Scales.OrderBy(prop => prop.Id).ToArray();
}
#endregion
#region IDisposable Members
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool disposing)
{
if (disposed || !disposing)
{
return;
}
if (context != null)
{
context.Dispose();
}
disposed = true;
}
#endregion
}
Должен ли я теперь создать отдельный BusinessContext для других объектов (Пользователь, Администратор) или я должен поместить все операции для всех объектов в 1 класс?Кроме того, когда я открываю новый диалог (для входа в систему), я должен передать BusinessContext родительского ViewModel в DialogViewModel или просто создать новый экземпляр BusinessContext в конструкторе DialogViewModel, как я делал в MainWindow?