我正在尝试找到一种方法来检测 SignalR 聊天应用程序中的垃圾邮件。每次用户发送消息时,我都想检查该用户在过去 5 秒内发送的消息量。我有一个包含 2 个表的数据库:Message 和 User,其中使用 MessageDate 记录消息,使用 UserID 记录用户。表之间存在多对一关系(每条消息 1 个用户,每个用户多条消息)。
如何编写查询以检查特定用户在过去 5 秒内发送的消息?
我曾尝试在线寻找解决方案,但我是查询新手,并且很难让所有事情都正确(连接、日期范围、使用计数属性和正确获取数据模型)。
我得到的最接近的是:
var db = new MessageContext();
int messageCount = (from op in db.Message
join pg in db.User on op.UserID equals pg.UserID
where pg.UserID == op.UserID
&& (a.Start.Date >= DateTime.Now.AddSeconds(-5)
&& a.Start.Date <= DateTime.Now)
select op)
.Count();
提前感谢,任何帮助appriciated!