В моей базе данных три таблицы 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;
}