我有4个表:CustomerDocument,CustomerLink,CustomerAdditionalInfo和CustomerImage。它们每个都具有CustomerNumber值,我需要从每个表中提取客户编号并放入下拉列表。我知道如何使用一个表,但不是多个表。此外,还有一个限制,即CustomerNumber不需要为null,因此我是否需要在每次加入时都包含此项?这是我现在的一些代码。 oDb是DataContext
var oData = from c in oDb.CustomerAdditionalInfos
where ( c.CustomerID == CustomerID &&
c.CustomerNumber != null &&
c.CategoryID == CategoryID )
orderby c.CustomerNumber
select new { c.CustomerNumber };
return oData;
答案 0 :(得分:2)
你可以这样做....
var oData = (from c in oDb.CustomerAdditionalInfos
where c.CustomerNumber != null
select new
{
CustomerNumber = c.CustomerNumber
}).Union
(from d in oDb.CustomerDocument
where d.CustomerNumber != null
select new
{
CustomerNumber = d.CustomerNumber
}).Union
(from l in oDb.CustomerLink
where l.CustomerNumber != null
select new
{
CustomerNumber = l.CustomerNumber
}).Union
(from i in oDb.CustomerImage
where i.CustomerNumber != null
select new
{
CustomerNumber = i.CustomerNumber
}).OrderBy(c => c.CustomerNumber);
这只是所有四个表中所有CustomerNumbers的联合。如果有重复,这将包括重复。如果您只想要不同的CustomerNumbers,那么只需在Distinct()
之后执行OrderBy
。