私は2つのウィンドウを持っています。彼らは別のDbContext
オブジェクトを持っています。EF6でコンテキストをリフレッシュする方法は?
Window1はデータビュー用です。
Window2は、データ編集用のダイアログウィンドウです。
Window2でデータを編集した後、私はctx.SaveChanges()
メソッドを使用しています。
ウィンドウ2データ部分ビュー:背後
<Button Name="SaveChanges" Click="SaveChanges_Click">Save</Button>
<DataGrid Name="ListBoxLayouts"> <!-- "ListBox" in a name from the past -->
</DataGrid>
コード:
public Window2(ref MyContext context)
{
InitializeComponent();
ctx = context;
ctx.Layouts.Load();
ListBoxLayouts.ItemsSource = ctx.Layouts.Local;
}
private void SaveChanges_Click(object sender, RoutedEventArgs e)
{
System.Console.WriteLine(ctx.SaveChanges());
this.DialogResult = true;
this.Close();
}
ウィンドウ1がウィンドウ2からDialogResult
を取得すると - 私は新しいウィンドウ1コンテキスト
ctx.Dispose();
ctx = new MyContext();
Layouts l = context.Layouts.Where(a => a.LayoutId == 1).First();
と古いバージョンのデータがあります。
私のコードに問題がありますか?
が重複する可能性を試してみてください
using System.Data.Entity
を追加[私はDbContextを更新するにはどうすればよいです](http://stackoverflow.com/questions/18169970/how-do-i-refresh- dbctext) – Igorctxとcontextという2つの変数名があります。それらは作業中の同じオブジェクトコンテキストを参照していますか? –
@IslamYahiatene Nope。これらは、異なるコンテキストオブジェクトを参照します。 – Kamil