如何在SharePoint中使用LINQ

LINQ是一种有效且高效的查询数据的方法。使用SPMetal你可以为LINQ准备SharePoint列表。下面讲解如何准备你的列表,并创建使用LINQ的应用程序。

1. 打开命令行(管理员身份运行)。

2. 导航到c:\Program Files\Common Files\Microsoft Shared\web server extensions\14\bin,并输入下面命令(确保用你自己的服务器名代替)

spmetal.exe /web:http://<servername> /code:SPEntityModel.cs /language:csharp

3. SPMetal命令工具将创建C#文件SPEntityModel.cs,你可以用在应用程序中对SharePoint列表模型执行LINQ查询(SPMetal主要将站点内所有列表翻译为实体模型)。

4. 管理员身份打开VS。

5. 新建空白SharePoint项目MyFirstSPLinqProject,点击确定,部署为场解决方案,完成。

6. 右击项目添加现有项,找到创建的SPEntityModel.cs。

7. 右击项目添加新建项,选择Web Part,命名MySPLinqWebPart。点击添加。

8. 右击引用,选择添加引用。点击浏览导航到文件夹c:\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI.选择Microsoft.SharePoint.Linq.dll,点击确定。

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/web/sharepoint/

9. 右击MySPLinqWebPart.cs,查看代码。

10. 修改代码:

using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Linq;
using System.Linq;
namespace MyFirstSPLinqProject.MySPLinqWebPart
{
[ToolboxItemAttribute(false)]
public class MySPLinqWebPart : WebPart
{
Label myLabel = new Label();
ListBox listTitles = new ListBox();
Button myButton = new Button();
protected override void CreateChildControls()
{
myLabel.Text = "Lists:";
myButton.Text = "Get Lists";
this.Controls.Add(myLabel);
this.Controls.Add(listTitles);
this.Controls.Add(new LiteralControl("<br />"));
this.Controls.Add(myButton);
myButton.Click += new EventHandler(myButton_Click);
}
void myButton_Click(object sender, EventArgs e)
{
//Be sure to update the server reference
//below to point to your server.
using (SPEntityModelDataContext dataContext =
new SPEntityModelDataContext
("http://smallville-pc:1528"))
{
var salesInfo = from data in dataContext.Customers
select data;
foreach (var salesItem in salesInfo)
{
listTitles.Items.Add(salesItem.Title.ToString() + " | " +
salesItem.CustomerType.ToString());
}
}
}
}
}

11. 修改.webpart文件代码:

<?xml version="1.0" encoding="utf-8"?>
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="MyFirstSPLinqProject.MySPLinqWebPart.MySPLinqWebPart, $SharePoint.Project.AssemblyFullName$"  />
<importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
</metaData>
<data>
<properties>
<property name="Title" type="string">Customer Types</property>
<property name="Description" type="string">
Web Part that lists customers and customer types (using SP LINQ).
</property>
</properties>
</data>
</webPart>
</webParts>

12. 完成后,部署解决方案。

13. 添加此Web Part。

14. 点击Get Lists可以获得列表对应客户和类型。

本机截图:

PS:此文与之前的博文http://blog.csdn.net/crazygolf/article/details/30710779有关联,请先完成这个练习。

作者:csdn博客 张世辉

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索web
, sharepoint
, using
, system
, microsoft
Controls
linq to sharepoint、sharepoint如何使用、sharepoint使用教程、sharepoint 使用、sharepoint怎么使用,以便于您获取更多的相关知识。

时间: 2024-10-31 23:17:12

如何在SharePoint中使用LINQ的相关文章

如何在SharePoint中利用Jquery Chosen创建新的人员选择器

基于SharePoint平台开发时,人员选择器使用频率是非常高的,但是原生的人员选择器使用太麻烦,而且非常笨拙,非常不友好,特别是对呆在政府部门的老爷们,要让他们手动输入人员,简直就是痴心妄想.总之一句话,越简单越好. 为了让客户满意,必须要对人员选择器进行改造,原生的PeopleEditor彻底抛弃.只能另辟蹊径,寻找适合的JQuery插件,创建新的人员选择器,分析了一下需求,可以归纳新的人员选择器必须支持如下情况: 支持人员的多选,比如像会议.通知需要对多人进行发送,当然也要支持删除. 对于

如何在SharePoint中创建一个简单的Visio Web部件图

Visio有许多强大的Mash-up混聚功能,使它可以轻松集成到SharePoint 2010中. 1. 打开Visio 2010,创建新的ITIL图. 2. 绘图如下: 3. 点击后台选项卡(左上角). 4. 点击另存为,选择位置,点击确定,输入Keyword,点击确定.

如何在SharePoint中创建 Lookup 类型的Site Column解决跨站问题

在某些情况下,我们需要去引用其他List中的数据,比如在网站集(Site Collection)上有个List叫Country,在其子网站(WebSite)有个List叫Employee,如果要在子Site上的Employee去引用Country中的数据,一般我们会在Site Collection上创建一个网站栏(Site Column).这是一种解决方案.还有一种解决方案,我们也可以在项目中创建一个Lookup 类型的 Site Column,其Scope为Site,顺着思路,我理所应当的创建

如何在SharePoint 2013中创建WCF REST Service

SharePoint 2013为开发者提供了丰富的REST API,方便了我们在客户端操作List中的数据.当然我们也可以在SharePoint 2013中创建自定义的REST Service,比如通过REST Service去操作数据库.本篇博客将介绍怎样在SharePoint 2013创建WCF REST Service. SharePoint 中 创建WCF Service 因为无法在SharePoint 2013 Project中添加WCF Service Template,所以预先创建

在ASP.NET中使用LINQ (1)

Linq简介 LINQ,语言级集成查询(Language INtegrated Query),面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段.程序员现在都已 经认同像 类(classes).对象(objects).方法(methods)这样的语言特性.考察现在和下一代的技 术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信 息数据( acces

如何在access中查询统计带分号的字符串数据?

问题描述 如何在access中查询统计带分号的字符串数据? 有一表内容大致如下:人员姓名 | 金额甲:乙:丁: | 60甲:乙: | 40乙:丁: | 40丙: | 20求一查询,平均分金额后合计,可得新表如下:人员姓名 | 金额甲 | 40乙 | 60丙 | 20丁 | 40 即原表中第一行甲乙丙三人平分60,乙得20:第二行甲乙二人平分40,乙得20:第三行同理,新表中乙合计得60. 解决方案 你的统计规则是什么,为什么甲是40? 解决方案二: string[] 数据 = { ""

access-如何在Access中删除一行数据,怎么出错?? String sql=&amp;amp;quot;DELETE FROM T

问题描述 如何在Access中删除一行数据,怎么出错?? String sql="DELETE FROM T Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat=conn.createStatement(); String id=javax.swi

在ASP.NET中使用LINQ(第一部分)

问题描述 最近使我激动不已的新鲜事之一就是LINQ系列技术的出现,包括LINQ,DLINQ,XLINQ和不久后的其他技术.LINQ将被完全集成到代号为Orcas的下个版本VisualStudio中,而且它也包含了一些非常酷的框架和工具支持,包括完全的智能感知和可视化设计器支持.你可以在这儿下载上周发布的LINQ五月份CTP版.这个CTP版本的亮点就是它能在VS2005上运行,使你能够立即开始深入研究LINQ.它实现了很多用户的反馈(例如:在DLINQ中添加了对存储过程的支持),并且包含了一个内置

link中如何在where中取得行号,为什么写where((x, row) =&amp;amp;gt; ...)不行?

问题描述 link中如何在where中取得行号,为什么写where((x, row) => ...)不行? link中如何在where中取得行号,为什么写where((x, row) => ...)不行? 解决方案 没有这个重载,可以先select再where select((x, i) => new { x, i }).where(x => x.x为原来的数据 x.i是行号) 解决方案二: 要取行号就不要在where中取了,linq没有这种方法.你可以用foreach循环取,方便