C#Linq2SQL:将函数转换为linq语句

问题描述 投票:0回答:1

我的数据库SubscriberSubscriptionBranch中有三个表。每个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;
}
c# entity-framework linq linq-to-sql
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.