我的数据库Subscriber
,Subscription
和Branch
中有三个表。每个Subscriber
在指定的Subscription
中可以有一个Branch
。我想列出在定义的分支中没有订阅的所有订阅者。为此,我编写了以下函数,但我知道可以使用LINQ运算符更短,更高效地编写它,但是我没有足够的知识来做到这一点。
您可以将此函数更改为LINQ语句吗?
List<Subscriber> subscribersWithNoSubscriptinoInThisBranch(int branchId)
{
DbSet<Subscriber> allSubscribers = db.Subscriber;
List<Subscriber> subscribers = new List<Subscriber>();
foreach (Subscriber s in db.Subscriber)
{
ICollection<Subscription> subscriptions = s.Subscription;
if (subscriptions.Where(su => su.branchId == branchId).Count() == 0)
{
subscribers.Add(s);
}
}
return subscribers;
}