我想用EF6检查数据库中是否存在实体的“列表”。
我尝试了几种方法,但没有找到解决方案。
最有希望的是:
public bool ChatWithMembersDoesExistYet(List<User> members)
{
return _context.Chats
.Include(c => c.Members)
.Any(x => x.Members.Select(y => y.Member)
.Equals(members));
}
但是它总是返回false。所以我想我做错了。 总体而言,我想检查是否与成员聊天。感谢您的帮助。
答案 0 :(得分:0)
列表上的Equals方法为该列表的每个成员调用一个Equals,因此您必须在用户类中定义自己的覆盖方法。
public override bool Equals(object obj)
{
var user= obj as User;
if (user == null)
{
return false;
}
return user.Id == this.Id;
}
答案 1 :(得分:0)
我的助手是SequenceEquals
:
public bool ChatWithMembersDoesExistYet(List<User> members)
{
return _hankContext.Chats
.Any(x => x.Members
.Select(y => y.Member)
.Select(y => y.Id)
.OrderByDescending(z => z)
.SequenceEqual(members
.Select(y => y.Id).OrderByDescending(z => z)));
}