C#/EF持续检查数据库中某个值的最佳实践?

C#/EF持续检查数据库中某个值的最佳实践?,c#,entity-framework,dbcontext,C#,Entity Framework,Dbcontext,所以基本上我想要一个方法,当被调用时,它会一直检查数据库,直到某个值存在。记录以外部方式更新(不在此应用程序中) 我不确定这方面的最佳做法。应该是下面这样的吗 while (true) { using(DbContext context = new myDBContext()) { if (context.whateverimlookingfor.exists()) return; } System.Threading.Thread.Sleep(200); }

所以基本上我想要一个方法,当被调用时,它会一直检查数据库,直到某个值存在。记录以外部方式更新(不在此应用程序中)

我不确定这方面的最佳做法。应该是下面这样的吗

while (true) 
{
 using(DbContext context = new myDBContext())
 { 
    if (context.whateverimlookingfor.exists())
       return;
 }
System.Threading.Thread.Sleep(200);
}

这叫做轮询,这是一种传统的方式。我想现在我们有了更好的方法,比如在服务器和客户端之间建立套接字连接(需要对服务器的一些访问权限)…如果需要这样做,可以使用
SqlDependency
。但这是一种代码气味。你使用的反模式被称为“IPC over RDBMS”,这是我个人最讨厌的模式。解决此问题的正确方法是构建系统的体系结构,使其不跨数据库传递信息。