using (SPSite site = new SPSite(siteUrl))
{
SPWeb web = site.OpenWeb();
SPQuery query = new SPQuery();
query.Query = camlDocument.InnerXml;
query.Joins =
@"
<Join Type='LEFT' ListAlias='Artist'>
<Eq>
<FieldRef Name='Artist' RefType='Id'/>
<FieldRef List='Artist' Name='ID'/>
</Eq>
</Join>
";
query.ProjectedFields =
@"
<Field Name='Country' Type='Lookup' List='Artist' ShowField='Country'/>
";
SPListItemCollection items = web.Lists["Songs"].GetItems(query);
IEnumerable<Song> sortedItems =
from item in items.OfType<SPListItem>()
orderby item.Title
select new Song { SongName = item.Title, SongID = item.ID, Country =
item["Country"].ToString()};
songs.AddRange(sortedItems);
}
return songs;
}
By LINQ
private static void SimpleLINQQuery()
{
Trace("Simple LINQ Query", true);
using (SampledataDataContext context = new SampledataDataContext(siteUrl))
{
var artistsMichael = from artist in context.Artists
where artist.Title.Contains("Michael")
select artist;
foreach (var artist in artistsMichael)
{
Trace(artist.Title);
}
}
}