【发布时间】:2016-10-13 23:13:15
【问题描述】:
我有两个窗口。它们有单独的 DbContext 对象。
Window1 用于数据视图。
Window2 是一个用于数据编辑的对话窗口。
在 Window2 中编辑数据后 - 我正在使用 ctx.SaveChanges() 方法。
Window2数据部分视图:
<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();
}
当 Window1 从 Window2 获取 DialogResult 时 - 我正在尝试通过处理和创建新的 Window1 上下文来刷新数据视图
ctx.Dispose();
ctx = new MyContext();
Layouts l = context.Layouts.Where(a => a.LayoutId == 1).First();
我正在获取旧版本的数据。
我的代码有什么问题?
【问题讨论】:
-
你有两个变量名 ctx 和 context,它们是指你正在处理的同一个对象上下文吗?
-
@IslamYahiatene 不。它们引用不同的上下文对象。
-
@IslamYahiatene 现在我更改了代码,我指的是整个应用程序中的一个上下文,但它仍然不起作用。
-
你能贴出你在Window2中编辑数据的代码吗?
标签: c# entity-framework-6