我一直在努力尝试让这个工作,我的大脑被枪杀......希望有人可以帮忙。Linq在IN使用方法的语法
我有一个名为Company的表,它是查询返回的主要实体。公司表通过表CompanyCategory链接到名为Category的表。类别表有两个与这里相关的字段:名称和含义。这些字段在一行中包含相同的数据... ie ... Name =“Marketing”和含义=“MARKETING”。这允许我通过含义进行查询,而显示名称可能在将来发生变化。我将始终通过含义查询类别表,然后显示名称。
由于公司可以包含1到多个类别,有时候我想返回所有拥有一组类别的公司......说......所有与营销或公共关系相关的公司。以下是我现在正在查询的所有公司仅返回我想要的数据的情况。
IQueryable<ICompanyModel> q = base.Context.Set<KD.CompanyAdventures.Data.Implementation.Company>()
.Include(x => x.Address.City.FirstAdminDivision)
.Include(x => x.CompanyBioInfoes)
.Select(x => new CompanyModel
{
CompanyId = x.CompanyId,
Name = x.Name,
BusinessPhone = x.BusinessPhone,
PrimaryEmail = x.PrimaryEmail,
WebsiteUrl = x.WebsiteUrl,
LogoUrl = x.LogoUrl,
Address = new AddressModel
{
AddressId = x.AddressId,
Address1 = x.Address.Address1,
Address2 = x.Address.Address2,
PostalCode = x.Address.PostalCode,
City = new CityModel
{
CityId = x.Address.City.CityId,
Name = x.Address.City.Name,
FirstAdminDivision = new FirstAdminDivisionModel
{
FirstAdminDivisionId = x.Address.City.FirstAdminDivision.FirstAdminDivisionId,
Name = x.Address.City.FirstAdminDivision.Name
}
}
}
});
我传递一个List<string>
的方法(GetCompanies)具有此LINQ查询,我需要这是由在传递类别含义该列表返回的公司进行筛选。我已经能够得到这个在测试使用了2名简单的名单运作下(其中表1 =所有员工(我的妻子和孩子的名字)和表2是对我的孩子只是名称):
IQueryable<string> adultEmployees = employees.Where(emp => !kids.Contains(emp.ToString())).AsQueryable();
但我我无法得到这与公司和类别示例一起工作,因为我无法弄清楚如何钻取复杂对象的含义.... ie ...不列出o f字符串。通过LINQ查询使用
对象类如下所示:
CompanyModel [ CompanyId, CompanyName, List<CategoryModel> ]
CategoryModel [ CategoryId, Name, Meaning ]
任何帮助是极大的赞赏。
这正是我的意思,正是我需要的。非常感谢! – user1011627 2014-09-03 14:22:04