2014-03-12 58 views
1

我有兩個簡單的列表。一個被稱爲僱員,其中有1列稱爲標題。另一個被稱爲公司,其中有1列稱爲標題。我在員工列表中添加了一個查找列,並將其指向公司列表的標識。CAML查詢從父列表中提取列

現在我寫了使用CSOM(沒有javascript和無服務器對象模型)

ClientContext c = new ClientContext(url); 
    List el = c.Web.Lists.GetByTitle("Employee"); 
    CamlQuery query = new CamlQuery(); 
    query.ViewXml = @"<View> 
         <ViewFields> 
          <FieldRef Name='ID'/> 
          <FieldRef Name='Title'/> 
          <FieldRef Name='CompanyTitle'/> 
         </ViewFields> 
         <Joins> 
          <Join Type='LEFT' ListAlias='Company'> 
           <Eq> 
            <FieldRef Name='Company' RefType='Id'/> 
            <FieldRef List='Company' Name='ID'/> 
           </Eq> 
          </Join> 
         </Joins> 
         <ProjectedFields> 
          <Field Name='CompanyTitle' Type='Lookup' List='Company' ShowField='Title'/> 
         </ProjectedFields> 
         <Query> 
          <Where> 
           <Eq> 
            <FieldRef Name='Company' LookupId='TRUE' /> 
            <Value Type='Lookup'>10</Value> 
           </Eq> 
          </Where> 
         </Query> 
        </View>"; 

    ListItemCollection items = el.GetItems(query); 
    c.Load(items); 
    c.ExecuteQuery(); 
    foreach (ListItem i in items) { 
     Console.WriteLine(i["Title"]); 
     Console.WriteLine(i["CompanyTitle"]); 
    } 

它的工作原理驗證碼...但它打印

E01 Microsoft.SharePoint.Client.FieldLookupValue E11 Microsoft.SharePoint.Client.FieldLookupValue E21

但不是看到「Microsoft.SharePoint.Client.FieldLookupValue」,我想看到第e父列表中列的實際內容。

我的代碼有什麼問題?

回答

0

得到它

Console.WriteLine(((FieldLookupValue)i["CompanyTitle"]).LookupValue); 

把它在這裏,這樣它可以幫助別人