一、Linq to SharePoint

首先Linq to SharePoint编程语言 C# 和 Microsoft Visual Basic .NET 的一个功能,编译器是 Visual Studio 附带的。

Linq to SharePoint是LINQ家族中的一员,如果使用过例如Linq to SQL的话,就会发现Linq to SharePoint与其有很多相同之处。

如Linq to SQL中有DataContext类,用来打开数据库连接并进行操作。Linq to SharePoint也有DataContext,同样用来对SharePoint中的数据进行操作。

二、SPMetal

使用Linq to SharePoint 很重要的一步是生成Entity类,也就是所说的SharePoint实体类,用来映射到SharePoint对应的文档库、列表等等。手动创建实体类,是一件很痛苦的事情,复杂且易错,幸好有SPMetal工具来自动生成。当然,这个工具也有一些限制,如自定义字段不会生成对应实体,文档库附件不会生成。如果有这样的需求,那只能使用扩展对象关系映射,这一点上本人也涉猎较浅,就不做赘述,还是直接使用微软提供的工具吧。接下来是SPMetal的使用方法:

1、使用默认代码生成规则

如果没有特殊要求,默认规则就可以满足程序的要求。

步骤一、打开命令行CMD

步骤二、cd(空格)%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15(SharePoint 2010则替换为12)\BIN

步骤三、运行命令:

SPMetal /web:http://yoursite /code:类名.cs /language:csharp回车
Warning:All content type for list 列名 were excluded.
SPMetal /web:http://我们的SharePoint站点:端口 /code:SiteEntities.cs

注意:/号前空格

还有一些其他的参数,可以设置生成代码的namespace、serializetion,可以参考MSDN文档
下面以此List为对象进行相应的增,删,改操作

1、添加操作

            
                EntitiesDataContext edc = new EntitiesDataContext(SPContext.Current.Web.Url);                
                PersonsItem installitem = new PersonsItem();
                installitem.Title = “张三”;
                edc.Persons.InsertOnSubmit(installitem);
                edc.SubmitChanges();

2、修改操作

          
          

EntitiesDataContext edc=new EntitiesDataContext(SPContext.Current.Web.Url);
              var mypersons = edc.Persons;//列名
              var updateitem = (from item in mypersons
                                where item.Title == "张三"
                                select item).First();
              updateitem.Title = "李四";
              edc.SubmitChanges();

3、删除操作

            
              EntitiesDataContext edc=new EntitiesDataContext(SPContext.Current.Web.Url);
              var mypersons = edc.Persons;//列名
              var deleteitem = (from item in mypersons
                                where item.Title == "张三"
                                select item).First();
              updateitem.Title = "李四";
              edc.SubmitChanges();

// Deleting the list item           

              mypersons.DeleteOnSubmit(delItem);

// Submit the changes            
            edc.SubmitChanges();   

Linq to sharepoint的更多相关文章

  1. Using LINQ to SharePoint

    LINQ and LINQ Providers   LINQ is a feature of the programming languages C# and Microsoft Visual Bas ...

  2. Linq to SharePoint与权限提升(转)

    转自http://www.cnblogs.com/kaneboy/archive/2012/01/25/2437086.html SharePoint 2010支持Linq to SharePoint ...

  3. XML To Linq 读取Sharepoint列表中的附件列信息

    通过页面查看,列表附件信息列的内容如下: var x = @"<div class='ExternalClass9936DCD1F074427B891D09CFCEFC2AB6'> ...

  4. SharePoint 服务器端对象模型 之 使用LINQ进行数据访问操作(Part 2)

    (四)使用LINQ进行列表查询 在生成实体类之后,就可以利用LINQ的强大查询能力进行SharePoint列表数据的查询了.在传统SharePoint对象模型编程中,需要首先获取网站对象,再进行其他操 ...

  5. SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 4)

    (六)高效合理的使用LINQ 1.DataContext中的两个属性 为了能够使用DataContext进行数据提交,在DataContext进行数据查询和操作的过程中,内部会进行数据状态的保持和追踪 ...

  6. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  7. 《SharePoint 2013 应用开发实战》目录

    博客地址:http://blog.csdn.net/FoxDave 第 1 章  1 ◄SharePoint概述►        1 1.1  SharePoint的发展历程 1 1.1.1  Sha ...

  8. [.net 面向对象编程基础] (20) LINQ使用

    [.net 面向对象编程基础] (20)  LINQ使用 通过上节LINQ的基础知识的学习,我们可以开始使用LINQ来进行内存数据的查询了,我们上节说了LINQ的定义为:Language Integr ...

  9. SharePoint—用REST方式访问列表

    REST的定义与作用 在SharePoint 2010中,基本上有如下几种数据访问方式: 服务器端对象模型 LINQ to SharePoint Web Service 客户端对象模型 ADO.NET ...

随机推荐

  1. Mysql--Database Exception (#42) 数据库错误

    mysql是phpstudy中的mysql,出现这个错误八成是php.ini中没有设置mysql.sock 使用探针或者phpinfo查看php.ini的位置. sudo find / -name m ...

  2. Ecshop中transport和jquery不兼容的解决方案

    1.修改文件:/js/transport.js,在最底部增加代码 if (Object.prototype.toJSONString){ var oldToJSONString = Object.to ...

  3. 老男孩Python全栈开发(92天全)视频教程 自学笔记16

    day16课程内容: 装饰器: def outer(): x=10 def inner(): print(x) return innerouter()() #inner 是局部变量,10闭包:如果在一 ...

  4. uva1025 动态规划

    这道题的边界是dp(T,N)=0,状态dp(i,j)表示在时间i.第j个车站最少等待时间,有三个决策:1.等1分钟 2.如果有向左的车,向左 3.若果有向右的车,向右  转移方程就是dp(i,j)=m ...

  5. ActiveMq笔记1-消息可靠性理论

    原博客:http://shift-alt-ctrl.iteye.com/blog/2020182 https://mp.weixin.qq.com/s/h74d6LtGB5M8VF0oLrXdCA 我 ...

  6. java复习

    局部变量的作用域只在方法内部有效,在方法外无效 用类型作为形参传递会改变实参的值,但是String是特殊的引用类型,作为形参传递不会影响实参的值. HashMap非线程安全,在多个线程访问Hashta ...

  7. iOS.Animations.by.Tutorials.v2.0汉化(三)

    第2章:Springs 在前一章中,您学习了如何创建UIKit的基本动画,包括如何提供起始值和结束值随着时间的UIKit,自动为你创建一个动画. 到目前为止,你的动画一直是单方向的流体运动.当你激活一 ...

  8. 【前端】HTML中最适合做按钮的元素

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/6405914.html 可选的可以做按钮的元素有如下几个 a.input.button.div(span等) 场景 ...

  9. Windows下的Memcache安装:

    Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd命令界面)下输入 'c:\memcac ...

  10. MinnowBoard MAX 硬件开发板

    Minnowboard MAX MinnowBoard MAX是一款紧凑型,经济实惠,而且功能强大的开发板为专业人士和制造商.开放式的硬件设计使无尽的定制和集成的潜力.它采用64位英特尔®凌动™E38 ...