2012-05-03 12 views
0

我期望使用LINQ to SQL和C#将连接的表和项目的内容连接到视图模型中。将连接表和项目的内容连接到LINQ to SQL中的视图模型中

我的伪代码如下:

return (from t1 in db.Opportunities 
        from t2 in db.Leads.Where(x => x.Lead_ID == t1.Lead_ID) 
        from t3 in db.LeadAddresses.Where(x => x.Lead_ID == t2.Lead_ID).DefaultIfEmpty() 
        from t4 in db.Addresses.Where(x => x.Address_ID == t3.Address_ID).DefaultIfEmpty() 
        orderby (t1.Created) descending 
        select new FieldSalesPipelineViewModel 
        { 
         Id = t1.Opportunity_ID, 
         CompanyName = t2.Company_Name, 
         OpportunityTitle = t1.Opportunity_Title, 
         CompanyCity = ?????????? 
        }).Take(howMany); 

一根引线可以有多个地址,但我只希望在我的输出返回一个城市的结果 的一个逗号分隔列表独特城市地址 (t4.City)

任何提示如何解决这个问题将不胜感激。

回答

1

您是否希望将多个城市从t4加入单个字符串中,并将其放入CompanyCity中?如果是的话,这应该是诀窍:

CompanyCity = string.Join(",", t4.Cities) 
+0

很好。这会产生一个机会每个结果还是我需要做一些分组魔法? – Nick

+0

@Nick我想我需要看到你加入的表格/对象来回答这个问题。添加这个将保持记录计数与上面用'CompanyCity = ???'行注释掉上面发布的查询的结果相同。 – goric