加入多对多关系表后获取计数

Get the count after joining many to many relationship tables

我有两个表国家和地区。这些表在两个系统之间进行名称映射。我需要获取给定两个表的匹配记录数,其中每个表的项目选择都有一个条件

public class Region
{
    public int Id { get; set; }
    public string System_A_Name { get; set; }
    public string System_B_Name { get; set; }
    public virtual ICollection<Country> Countries { get; set; }
}

public class Country
{
    public int Id { get; set; }
    public string System_A_Name { get; set; }
    public string System_B_Name { get; set; }
    public virtual ICollection<Region> Regions { get; set; }
}

通过程序我得到了一些值,我需要验证它是否在记录中可用。

repository.Regions.Join(repository.Countries, r => r.System_A_Name == "North America_A", c => c.System_B_Name == "Canada");

我需要得到结果的计数来检查是否有这样的有效记录。如何做到这一点?

我相信你的join声明没有编译

试试这个

var joined = repository.Regions
                   .Join(repository.Countries, 
                         r => r.Id, //common attribute to base join
                         c => c.Id, //common attribute to base join
                        (r, c) => new { Region = r, Country = c}) //selector for your joined statmenet
//your conditions
                   .Where(joinedRegAndCountry => 
                              joinedRegAndCountry.Region.System_A_Name == "North America_A" &&
                              joinedRegAndCountry.Country.System_B_Name == "Canada")
                             .Count();