您好我正在开发一个WinForms应用程序,它使用带有EF的LocalDb进行数据访问。 到目前为止,我的WinForms应用程序中的数据库访问只能一次执行一次,只需调用:
using (var context = new EfDbContext())
{
// do something on context entities
}
需要时。
现在我面临一个新的要求 - 我需要创建一个额外的后台服务,用于定期从位于某些FTP服务器上的文件中获取数据,然后 - 在此SQL LocalDb中更新/插入新数据。
我想要实现的是同时访问WinForms应用程序和这个新的后台应用程序(服务)的SQL LocalDb数据,这样用户就可以从Db查看数据(在WinForm应用程序中) ),同时在后台(由服务)执行数据更新。
我想省略彼此阻塞的资源。
可以做到(以及如何做到)? 谢谢!
更新:我忘了提到将从ftp文件中读取然后插入数据库的数据集可能非常大~20-50k的记录,每个记录包含十进制字段,DateTimeOffset字段和少数Int32字段
答案 0 :(得分:1)
只需使用它,现在就不用担心并发问题。 SQL Server广泛用于高度并发的应用程序,如ASP.NET Web Apps,您的示例并不是那么特别。使用具有写入操作的事务时,阻塞可能是一个问题。但是有很多Transaction isolation levels来解决这个问题,而且我认为这对你的任务来说无关紧要