Контекст Entity Context получает данные из базы данных только один раз, после чего он кэшируется в памяти.
Чтобы получить данные из базы данных, вы должны сначала позвонить SaveChanges()
в Context1. Затем, чтобы вызвать Refresh(RefreshMode.StoreWins, Context2.EntityToRefresh)
, чтобы получить значения базы данных в контексте2.
Вы также можете использовать контекст Share/Static для выполнения своих запросов, поскольку вы можете быть уверены, что у вас есть одинаковые данные для всех ваших запросов.
Вы можете реализовать его, как это
public class SharedObjectContext
{
private readonly WestwindEntities context;
#region Singleton Pattern
// Static members are lazily initialized.
// .NET guarantees thread safety for static initialization.
private static readonly SharedObjectContext instance = new SharedObjectContext();
// Make the constructor private to hide it.
// This class adheres to the singleton pattern.
private SharedObjectContext()
{
// Create the ObjectContext.
context = new WestwindEntities();
}
// Return the single instance of the ClientSessionManager type.
public static SharedObjectContext Instance
{
get
{
return instance;
}
}
#endregion
public WestwindEntities Context
{
get
{
return context;
}
}
}