我一直在努力嘗試讓這個工作,我的大腦被槍殺......希望有人可以幫忙。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