【问题标题】:Refresh EntityFramework in Form Application在表单应用程序中刷新 EntityFramework
【发布时间】:2019-06-18 05:36:35
【问题描述】:

我想在表单应用程序中刷新我的数据库,但我不知道该怎么做。我找到了一些代码,但我不确定它是否适用于获取最近的数据以及我应该在哪里写。

我尝试刷新或更新我的 datagridview,但没有成功。

public static void ReloadEntity<TEntity>(
    this DbContext context, 
    TEntity entity)
    where TEntity : class
{
    context.Entry(entity).Reload();
}

【问题讨论】:

  • 我应该在哪里写这段代码?存储库.cs ?存储库基础.cs ? AlfaPlastikContext.cs ?数据库上下文?
  • 因为它是 DbContext 的静态方法,所以只要您的类知道在哪里可以找到它,即命名空间,这个扩展将可供您的类使用。对于您的主要问题,我建议只调用将数据加载到 datagridview 中的例程以重新加载数据。为了更清楚:stackoverflow.com/a/16872910/1094751.

标签: c# database entity-framework repository


【解决方案1】:

我想刷新我的数据库

你没有!你想错了

  1. 不要缓存DbContext,意思是不要打开它并无限期地保留它
  2. 对概念性工作的短单元使用using 语句。连接已经在后台缓存,可以避免更多问题的发生。
  3. 不要将 repositories 与 EntityFramework 一起使用,这会浪费您 99.4564564% 的时间以及未来开发人员调试和升级您的代码的时间

【讨论】:

    【解决方案2】:
     public static void ReloadEntity<TEntity>(this DbContext context,                    TEntity entity)
                 where TEntity : class
          {
             ((IObjectContextAdapter)context)
               .ObjectContext
               .Refresh(RefreshMode.StoreWins, entity);
          }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 2018-02-17
      • 2012-05-10
      • 1970-01-01
      相关资源
      最近更新 更多