刷新在实体框架中使用数据库优先方法模型创建的实体中的数据

Posted

技术标签:

【中文标题】刷新在实体框架中使用数据库优先方法模型创建的实体中的数据【英文标题】:Refresh the data in entity created using database-first approach model in Entity Framework 【发布时间】:2019-07-24 18:39:03 【问题描述】:
using (DEMONewEntities demonew = new DEMONewEntities())


在 App.Config 中,我们有以下条目: 这是在解决方案文件夹中生成的结构。

我最初创建了数据库。之后,我使用数据库优先的方法从中编写代码。

我有两个要求:

    如何在 C# 中刷新实体中的数据,使用实体框架创建,如代码示例所示?

    多久刷新一次数据可能会提高性能?

【问题讨论】:

“刷新数据”到底是什么意思? 我所说的“刷新”是指如何在数据库发生更改时获得通知,这需要我们创建一个新的数据上下文实例。 【参考方案1】:

通过“刷新数据”,我假设您的意思是创建一个新上下文,以便 Entity Framework 从数据库中获取新数据,而不是使用 ChangeTracker 中加载的实体。

1.如何在C#中刷新实体中的数据,使用Entity Framework创建,如代码示例所示?

您通常会创建一个新的上下文。您可以在代码中使用多个上下文。

using (DEMONewEntities demonew = new DEMONewEntities())



// ...code...

using (DEMONewEntities demonew = new DEMONewEntities())


2.多久刷新一次数据可能会增加性能?

尽可能频繁,但这取决于您的工作。 Change Tracker 中有太多实体会影响您的性能。

您可以在此处找到一些有关 ChangeTracker 对大量实体的影响可能变得多慢的信息:

https://entityframework.net/improve-ef-detect-changes-performance https://entityframework.net/why-detect-changes-slow

【讨论】:

以上是关于刷新在实体框架中使用数据库优先方法模型创建的实体中的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在实体框架中定义存储过程(代码优先)?

PHP中的代码优先实体框架模型

在代码优先实体框架中手动编辑数据库

使用实体框架代码优先创建文本列[重复]

实体框架模型优先:以编程方式创建 UNIQUE 约束

实体框架和代码优先开发