我正在使用实体框架4从DB创建实体.
我有2个实体上下文连接到db.让我们说context1和context2
但是,当我执行以下步骤时,1.从context1获取数据2.从context2获取相同的数据行3.将相同的数据行更新为context1 4.从context2获取相同的数据行
在步骤3中更新后,context2不会更改.
我猜context2缓存了数据.每次都不从db获取数据.
怎么解决?
谢谢〜
实体上下文仅从数据库中获取数据,然后将其缓存在内存中.
要从数据库获取数据,首先要调用SaveChanges()
Context1.然后,调用Refresh(RefreshMode.StoreWins, Context2.EntityToRefresh)
以获取context2中的数据库值.
您还可以使用共享/静态上下文来执行查询,因为您可以确保所有查询都具有相同的数据.
你可以像这样实现它
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1675 次 |
最近记录: |