SharePoint 2010 – LINQ 和 SPMetal





5.00/5 (1投票)
探索 LINQ 和 SPMetal 工具。
引言
在本文中,我们将探讨一些高级编程领域
- LINQ to SharePoint
- SPMetal
LINQ to SharePoint 是 SharePoint 2010 的一项新功能。LINQ 代表 Language Integrated Query,它是 .NET 的一部分。 LINQ 的目的是使用相同的类型化查询语法支持不同的数据源。目前它支持对象、数据集、SQL、实体、XML 等。
我们为什么需要 LINQ?
您可能已经注意到,以前的列表编程示例没有使用正确的列名访问。 LINQ 允许我们以类型化的方式访问列表。通过增加清晰度,我们可以根据通常在数据库中使用的列名来访问列表项。
示例
var result = from c in Citizen where c.Name == “John” select c;
什么是 SPMetal?
由于我们将创建具有自定义列名的自定义列表,因此我们需要生成实体模型。 SPMetal.exe 是帮助生成模型类的工具。 尽管我们可以手动创建模型类,但这将是一项繁琐且容易出错的工作。 使用 SPMetal 将是建模类的正确方法。
活动
本文中执行的活动如下
- 管理器列表创建
- 实体创建
- 使用 LINQ 读取
- 插入实体
- 更新实体
- 删除实体
使用 LINQ 和 SPMetal 进行实验
首先,创建一个从自定义列表继承的自定义列表,并将其命名为 Manager
。 添加以下自定义列和数据
生成实体模型
现在我们可以为上面的列表生成实体模型。 您可以在以下文件夹中找到 SPMetal.exe:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN。
打开命令提示符并转到指定的文件夹
现在运行以下命令
SPMetal.exe /web:http://YOURSITE /code:SiteEntities.cs
稍等片刻,您将准备好新文件。 打开文件 SiteEntities,您可以看到 Manager 类包含在其中。
创建应用程序
创建一个新的 SharePoint > 2010 > 控制台应用程序(针对 .NET 3.5 框架)并将 SiteEntities.cs 文件添加到其中。
添加对以下程序集的引用
您可以尝试以下操作:使用 LINQ to SharePoint 读取、插入、更新、删除。
选择一个项目
现在我们尝试选择国家/地区为美国的经理
using (SiteEntitiesDataContext context = new SiteEntitiesDataContext("http://appes-pc"))
{
var result = context.Manager.Where(m => m.Country == "USA");
foreach (ManagerItem manager in result)
{
Console.WriteLine(manager.Name);
}
}
注意:您可以使用 LINQ 或 Lambda 表达式进行查询。 在上面的示例中,我使用了 Lambda。
在执行应用程序时,您可以看到以下结果。
插入一个项目
要在 Manager 列表中插入一个新项目,请使用以下代码
using (SiteEntitiesDataContext context = new SiteEntitiesDataContext("http://appes-pc"))
{
ManagerItem manager = new ManagerItem();
manager.Name = "New Manager";
manager.Address = "New Address";
manager.Country = "New Country";
context.Manager.InsertOnSubmit(manager);
context.SubmitChanges();
}
执行应用程序后,在 SharePoint 中打开 Manager 列表,如下所示
更新一个项目
要在 SharePoint 中更新一个项目,请使用以下代码
using (SiteEntitiesDataContext context = new SiteEntitiesDataContext("http://appes-pc"))
{
ManagerItem manager = context.Manager.Where(m =>
string.IsNullOrEmpty(m.Title)).FirstOrDefault();
if (manager != null)
manager.Title = "New Title";
context.SubmitChanges();
}
您可以在 SharePoint 中看到更新的实体
删除一个项目
要在 SharePoint 中删除一个项目,请使用以下代码
using (SiteEntitiesDataContext context = new SiteEntitiesDataContext("http://appes-pc"))
{
ManagerItem manager = context.Manager.Where(m => m.Title.Length > 3).FirstOrDefault();
if (manager != null)
context.Manager.DeleteOnSubmit(manager);
context.SubmitChanges();
}
您可以看到该项目已在 SharePoint 中删除
这总结了我们使用 LINQ to SharePoint 的读取、插入、更新、删除操作。 希望读者理解了这些主题。
摘要
在本文中,我们探讨了 LINQ 和 SPMetal 工具。 此信息在现实世界的编程场景中是必要的。 附件包含我们讨论的源代码。