C# 如何在C中使用EntityFramework创建Windows服务#

C# 如何在C中使用EntityFramework创建Windows服务#,c#,entity-framework,windows-services,dataset,C#,Entity Framework,Windows Services,Dataset,我需要一个应用程序,它读取一些表,从读取的数据生成一些新数据,并将其保存到另一个表中。这就像:我有一个数据库,它为我提供来自一个应用程序的一些客户机的信息。根据这些信息,我可能会创建一些有关客户端的警报,以便在另一个应用程序中显示 我有一个生成第一个数据的服务,它工作得很好,不是我开发的,我不必为此担心。但我创建了一个windows服务来读取和创建新数据,它使用诸如“temp”表之类的数据集,并用于与数据库的通信,在过程结束时,使用tableAdapter.update()将所有内容立即保存在数

我需要一个应用程序,它读取一些表,从读取的数据生成一些新数据,并将其保存到另一个表中。这就像:我有一个数据库,它为我提供来自一个应用程序的一些客户机的信息。根据这些信息,我可能会创建一些有关客户端的警报,以便在另一个应用程序中显示

我有一个生成第一个数据的服务,它工作得很好,不是我开发的,我不必为此担心。但我创建了一个windows服务来读取和创建新数据,它使用诸如“temp”表之类的数据集,并用于与数据库的通信,在过程结束时,使用tableAdapter.update()将所有内容立即保存在数据库中


我想改进这个windows服务,因为在我看来,数据集似乎不是最好的选择,我也研究过实体框架及其优点,但我不确定它是否是构建windows服务的最佳方式。构建这样的应用程序的最佳实践是什么?最好的方法是什么,不去数据库查看生成的每条记录,而是保存一堆记录,并将其保存在内存中?我的意思是,就像在运行时和进程结束时有临时表一样,保存生成的所有内容。

您的问题太广泛,所以很可能会被关闭。我将指定一些提示,让您开始。尝试它们并返回(书面代码、特定错误等)

  • DataSet vs.EF-在代码重构之前,先看一下,看看每种方法的优缺点。对于一个简单的应用程序(服务),可能根本不需要它

  • 缓存-通过缓存可以避免对数据库的多次读取/写入。一种方法是
    HttpRuntime.Cache
    ,如前所述。不必担心名称空间中的Web,它也可以被引用以用于非Web应用程序,如前所述

  • 但是,在处理缓存时,您应该更加小心,如果服务突然停止,会丢失哪些信息