EF6,Windows服务和数据库轮询

约翰

我有一个轮询数据库的Windows服务。我正在使用EF6和linq进行查询和更新等。

轮询需要尽可能频繁,大概每2秒或在该区域进行一次轮询。

我的直觉告诉我建立一个连接,并在我的服务运行时保持连接打开,但是其他原因告诉我每次都打开和关闭连接。我觉得后者会减慢它的速度(这真的会减慢这么多吗?)。

在Windows服务中轮询数据库时,最佳做法是什么?我真的应该经常轮询数据库吗?

我认为您应该经常处理上下文,并在每次轮询数据库时创建一个新的上下文。

主要原因是,除非禁用对象跟踪(确实仅适用于只读操作),否则上下文会随着时间的流逝而变得越来越大,每个后续的轮询操作会将更多数据加载到上下文的缓存中。除了这导致的内存增加之外,SaveChanges()也会变慢,因为ObjectContext然后会寻找附加到它的对象中的更改。

如果由于某种原因失去了连接,那么将新连接与上下文相关联将很困难。无论如何,根据我自己的经验,它不会降低速度,它会在第一个EF上下文对象之后快速构建任何EF上下文对象,因为该模型是在第一次加载时进行缓存的。

我不会担心每2秒进行一次轮询。对我来说,这似乎是完全合理的。

顺便说一句,如果您使用的是SQL Server,则可以使用Sql Dependency在数据更改时触发事件,但是轮询是最可靠的选择。

http://msdn.microsoft.com/zh-CN/library/62xk7953(v=vs.110).aspx

另外,如果您对轮询一无所知,可以考虑使用RabbitMQ之类的Message Broker系统并更新您的应用程序以使用它,但是准备花费几周的时间来实施基础结构。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF6,Windows服务和数据库轮询

来自分类Dev

EF6数据库首先使存储过程异步

来自分类Dev

创建ac#Windows服务以轮询数据库

来自分类Dev

Windows 服务中的 EF6 存储库模式

来自分类Dev

首先在EF6数据库中模拟数据库

来自分类Dev

EF6 与 EF 核心单个数据模型还是多个用于与 REST 服务一起使用的“大型”数据库?

来自分类Dev

EF6数据库优先-EF尝试创建我的数据库(但所有表已存在)

来自分类Dev

微服务和数据库安全

来自分类Dev

EF6迁移(LocalDb)更新数据库登录失败

来自分类Dev

在SQL数据库和EF6中保存标志枚举。这可能吗?

来自分类Dev

使用EF6失败的SqlServer数据库镜像故障转移仅镜像原则

来自分类Dev

使用EF6加载数据库初始化程序时出错

来自分类Dev

使用EF6加载数据库初始化程序时出错

来自分类Dev

在EF6中更改数据库架构的最干净方法

来自分类Dev

EF6“尚未将迁移应用于目标数据库。”

来自分类Dev

EF6和MySQL从模型生成数据库

来自分类Dev

将数据库优先EF6实体映射到域模型实体

来自分类Dev

EF6不从数据库生成外键关联

来自分类Dev

首先是MVC 4和EF6数据库:映射问题

来自分类Dev

Nest无法使用EF6 / MVC5应对大型数据库模型

来自分类Dev

EF6代码迁移-数据库不同,但相同

来自分类Dev

EF6 Model First:添加新实体后无法从模型生成数据库

来自分类Dev

首先管理EF6数据库多对多关系

来自分类Dev

从集合中删除对象后,如何使EF6从数据库中删除对象?

来自分类Dev

ASP.NET MVC 5 + EF6 + Ninject-多租户数据库

来自分类Dev

添加了EF6 / Mysql的数据库优先模式名称为XXY

来自分类Dev

首先是MVC 4和EF6数据库:映射问题

来自分类Dev

当我用EF6查询数据库时,使用LINQ有什么优势?

来自分类Dev

EF6代码迁移-数据库不同,但相同

Related 相关文章

  1. 1

    EF6,Windows服务和数据库轮询

  2. 2

    EF6数据库首先使存储过程异步

  3. 3

    创建ac#Windows服务以轮询数据库

  4. 4

    Windows 服务中的 EF6 存储库模式

  5. 5

    首先在EF6数据库中模拟数据库

  6. 6

    EF6 与 EF 核心单个数据模型还是多个用于与 REST 服务一起使用的“大型”数据库?

  7. 7

    EF6数据库优先-EF尝试创建我的数据库(但所有表已存在)

  8. 8

    微服务和数据库安全

  9. 9

    EF6迁移(LocalDb)更新数据库登录失败

  10. 10

    在SQL数据库和EF6中保存标志枚举。这可能吗?

  11. 11

    使用EF6失败的SqlServer数据库镜像故障转移仅镜像原则

  12. 12

    使用EF6加载数据库初始化程序时出错

  13. 13

    使用EF6加载数据库初始化程序时出错

  14. 14

    在EF6中更改数据库架构的最干净方法

  15. 15

    EF6“尚未将迁移应用于目标数据库。”

  16. 16

    EF6和MySQL从模型生成数据库

  17. 17

    将数据库优先EF6实体映射到域模型实体

  18. 18

    EF6不从数据库生成外键关联

  19. 19

    首先是MVC 4和EF6数据库:映射问题

  20. 20

    Nest无法使用EF6 / MVC5应对大型数据库模型

  21. 21

    EF6代码迁移-数据库不同,但相同

  22. 22

    EF6 Model First:添加新实体后无法从模型生成数据库

  23. 23

    首先管理EF6数据库多对多关系

  24. 24

    从集合中删除对象后,如何使EF6从数据库中删除对象?

  25. 25

    ASP.NET MVC 5 + EF6 + Ninject-多租户数据库

  26. 26

    添加了EF6 / Mysql的数据库优先模式名称为XXY

  27. 27

    首先是MVC 4和EF6数据库:映射问题

  28. 28

    当我用EF6查询数据库时,使用LINQ有什么优势?

  29. 29

    EF6代码迁移-数据库不同,但相同

热门标签

归档