博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SharePoint 2010之LINQ与SPMetal
阅读量:5788 次
发布时间:2019-06-18

本文共 2551 字,大约阅读时间需要 8 分钟。

介绍

在本文中,我们将介绍以下高级开发领域中的内容: •LINQ to SharePoint •SPMetal LINQ to SharePoint 是SharePoint 2010的一项新特性。 LINQ 本身是 Language Integrated Query 的意思,它是 .NET的一个组成部分。 LINQ的设计目标是使用相同的类型化查询语法来支持不同类型的数据源。到目前为止,它可以支持Objects, Datasets, SQL, Entities, XML等。

为什么我们需要 LINQ?

从前我们针对 List 的编程都是使用相应的栏名来访问。有了LINQ 之后,我们就使用类型化的方式访问列表了。换句话说,使用类似访问数据库的方式去访问列表项。 就像下面这样:

var result = from c
in
Citizen where c.Name == “John” select c;

什么是SPMetal?

我们创建了一个包含自定义栏的自定义列表后,还需要创建一个实体模型(Entity Model)与之对应,这样才能用LINQ来访问它。 SPMetal.exe 就是一个帮助我们生成 Model 类的工具。尽管我们可以手工创建Model 类,但毕竟这属于枯燥单调的工作,并且很容易出错。 所以用SPMetal 才是生成model 类的王道。

活动

本文将包含以下活动: 1.    Manager 列表创建 2.    实体创建 3.    使用LINQ读取 4.    插入实体 5.    更新实体 6.    删除实体

开始 LINQ 和SPMetal 的体验之旅

作为实验对象,我们创建了一个自定义列表,名为Manager. 添加如下的自定义栏和数据:

生成实体模型

现在,我们就可以为以上列表生成实体模型。使用这个文件夹下的 SPMetal.exe来生成模型类:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN 打开命令行,进到该文件夹:

运行如下命令:

SPMetal.exe /web:http:
//你的站点 /code:SiteEntities.cs

过一会儿我们就会生成出一个新文件。打开SiteEntities 文件,我们就可以看到其中包含的Manager 类。

创建应用程序

新建一个SharePoint > 2010 > 控制台应用程序 (目标框架 .NET 3.5 framework) 并将 SiteEntities.cs 文件添加到该项目。

添加如下程序集引用:

我们可以尝试以下操作: 通过LINQ to SharePoint读取,插入,更新,删除。

读取项

我们先试一下查询country 为USA 的managers :

using (SiteEntitiesDataContext ctx = new SiteEntitiesDataContext("http://moss.contoso.com/sites/Lab01")){          var result = ctx.Manager.Where(m => m.国家 == 国家.USA);           foreach (Manager项目 manager in result)           {                Console.WriteLine(manager.名称);           }}

注: 我们可以使用 LINQ 或 Lambda 表达式来进行查询。上面的例子中我们用的是Lambda。 运行该应用程序,我们可以看到如下的结果。

插入项

如果要在Manager 列表中插入数据,可以使用如下代码:

using
(SiteEntitiesDataContext ctx =
new
SiteEntitiesDataContext(
""
))
{
        
Manager项目 manager =
new
Manager项目();
        
manager.名称 =
"新的经理"
;
        
manager.地址 =
"新的地址"
;
        
manager.国家 = 国家.China;
        
ctx.Manager.InsertOnSubmit(manager);
        
ctx.SubmitChanges();
}

执行以上程序后,打开SharePoint 中的Manager 列表,可以看到如下结果:

更新项

如果要更新SharePoint 中的列表项,可以使用如下代码:

using
(SiteEntitiesDataContext ctx =
new
SiteEntitiesDataContext(
""
))
{
       
Manager项目 manager = ctx.Manager.Where(m =>
string
.IsNullOrEmpty(m.标题)).FirstOrDefault();
        
if
(manager !=
null
)
        
{
              
manager.标题 =
"新的标题"
;
        
}
         
ctx.SubmitChanges();
}

我们可以在SharePoint 上看到更新后的实体:

删除项

如果要删除SharePoint 中的列表项,可以使用如下代码:

using
(SiteEntitiesDataContext ctx =
new
SiteEntitiesDataContext(
""
))
{
       
Manager项目 manager = ctx.Manager.Where(m => m.标题.Length>3).FirstOrDefault();
       
if
(manager !=
null
)
       
{
            
ctx.Manager.DeleteOnSubmit(manager);
        
}
        
ctx.SubmitChanges();
}

我们可以看到在SharePoint 中的该项已被删除:

以上就是如何通过LINQ to SharePoint 实现增删改查。希望大家都可以掌握。

总结

本文中我们使用了 LINQ 和SPMetal 工具。这些都是在实际的编程场景中经常使用的工具。

转自:

转载地址:http://amlyx.baihongyu.com/

你可能感兴趣的文章
Windows7下通过VHD安装Windows8系统
查看>>
基于AWS的云备份&容灾解决方案
查看>>
PHP水仙花问题解法之一
查看>>
出现错误ActivityManager: Warning: Activity not started
查看>>
25个增强iOS应用程序性能的提示和技巧--高级篇
查看>>
修改Eclipse格式化代默认长度
查看>>
CentOS中获取文件的前四个字节的16进制值
查看>>
AVR 调试错误
查看>>
java 获取本机mac地址并转为字符串
查看>>
HTTP事务的延迟—TCP的影响
查看>>
Spring MVC EL表达式不能显示
查看>>
Tomcat version 5.5 only supports J2EE 1.2, 1.3, and 1.4 Web modules
查看>>
【致青春】我们挥霍时间的年代
查看>>
WDS系列之四:自定义安装映像
查看>>
CentOS7 NTP server + keepalived
查看>>
jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换
查看>>
分布式计算相关
查看>>
Castle 整合.NET Remoting
查看>>
Windwos Server 2008 R2 DHCP服务
查看>>
SAS和SATA硬盘的区别
查看>>