加入多对多关系表后获取计数
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();
我有两个表国家和地区。这些表在两个系统之间进行名称映射。我需要获取给定两个表的匹配记录数,其中每个表的项目选择都有一个条件
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();