Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ到sharepoint。加入列表帮助_Linq_Sharepoint 2010_Linq To Entities - Fatal编程技术网

LINQ到sharepoint。加入列表帮助

LINQ到sharepoint。加入列表帮助,linq,sharepoint-2010,linq-to-entities,Linq,Sharepoint 2010,Linq To Entities,我目前正在使用SharePoint 2010,在我的业务层中,我正在使用LINQ to SharePoint。我使用SPMetal生成了所有的实体类 我们正在创建一个图书馆系统,我的系统有两个列表。第一个是贡献者,第二个是贡献者。每个贡献者都包含对贡献列表的引用(PrimarySBN引用)。贡献列表包含书籍列表,PrimarySBN在此列表中不是唯一的 贡献 ID PrimaryISBN TITLE 1 PRIM1 HardcoverLOTR

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

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

贡献

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"]

                         };