LINQ到sharepoint.加入列表帮助



我目前使用的是SharePoint 2010,在我的业务层我使用的是LINQ to SharePoint。我使用SPMetal生成了所有的实体类。

我们正在创建一个图书馆系统,我的系统有2个列表。第一个是贡献,第二个是贡献者。每个贡献者都包含对贡献列表的引用(PrimaryISBN引用)。贡献列表包含图书列表,主要isbn在此列表中不是唯一的。

ID  PrimaryISBN      TITLE      
1   PRIM1            HardcoverLOTR      
2   PRIM1            AudioBookLOTR      
3   PRIM2            HardcoverHP        
贡献

ID  Name  PrimaryISBNLookup
1   ABC   PRIM1
2   DEF   PRIM2

我正在尝试获取基于名称的特定用户贡献的所有书籍。我的查询是这样的

var result = from _contributor in data.contributor
             where _contributor.Name= "ABC"
             select new Book
            {
               Title = contributor.PrimaryISBNLookup.Title
            }

我目前面临的问题是检索具有相同ISBN但不同标题的记录(每种格式都有标题,即有声书将有标题,同一本书的精装书将有不同的标题)。这个查询只返回给我1条记录,即使我在我的系统中有2条记录,即具有ID(在贡献中)的记录,我在将记录插入贡献者列表时被迫插入。

非常感谢您的帮助

据我所知,您尝试实现一个简单的连接,如下所示:

var results = from _contributor in data.contributor
              join _contribution in data.contribution
              on _contributor.PrimaryISBNLookup equals _contribution.PrimaryISBN
              where _contributor.Name == "ABC"
              select new Book
              {
                  Title = _contribution.Title
              }

如果你想在SPList中使用DataTable,试试这个:

           SPList  cList = spWeb.Lists.TryGetList("Customer");
           SPList   oList = spWeb.Lists.TryGetList("Order");

            DataTable cTable= cList.Items.GetDataTable();
            DataTable oTable= oList.Items.GetDataTable();
            var coList = from tbl1 in cTable.AsEnumerable()
                         join tbl2 in oTable.AsEnumerable() on tbl1["Title"] equals           tbl2["CustomerName"]
                         select new
                         {
                             ItemName = tbl2["Title"],
                             CustomerName = tbl1["Title"],
                             Mobile = tbl1["MobileNo"]
                         };

相关内容

  • 没有找到相关文章

最新更新