首页 > 解决方案 > EF Core 获取从 DbContext 更新的数据

问题描述

我的“部门表格”中有此代码

    private readonly SIMContext _SIMContext;
    private Department model;
    public Frm_Department(SIMContext SIMContext)
    {
        InitializeComponent();
        _SIMContext = SIMContext;
    }

这是从我添加到加载事件的数据库中获取数据的方法
我有分配给gridControl DataSource的BindingSource组件“dataBindingSource”

    private async Task LoadDataAsync()
    {
            // Call the LoadAsync method to asynchronously get the data for the given DbSet from the database.
            await _SIMContext.Departments.LoadAsync().ContinueWith(loadTask =>
            {
                // Bind data to control when loading complete
                dataBindingSource.DataSource = _SIMContext.Departments.Local.ToBindingList();
            }, TaskScheduler.FromCurrentSynchronizationContext());

    }

我所有的 CRUD 操作都可以正常工作(使用 DbContext)。
现在问题来了:
如果我直接(手动)向数据库添加或删除记录(不使用 DbContext)并且如果我调用 LoadDataAsync 方法,我会毫无问题地获得所有记录。
但是当我编辑任何记录(手动)(不使用 DbContext)然后调用 LoadDataAsync 方法时,我得到的旧值没有更新。
我该如何解决这个问题?我尝试:

dataBindingSource.ResetBindings(false);
var state = _SIMContext.Entry(model).State;
state = EntityState.Modified;

但没有任何成功。

我将 EF Core 3.1.15 与 .Net 4.7.2 一起使用

标签: c#sql-serverwinformsdatagridviewentity-framework-core

解决方案


推荐阅读