65.9K
CodeProject 正在变化。 阅读更多。
Home

SharePoint 2010 – LINQ 和 SPMetal

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2012 年 6 月 7 日

CPOL

3分钟阅读

viewsIcon

65842

downloadIcon

514

探索 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 将是建模类的正确方法。

活动

本文中执行的活动如下

  1. 管理器列表创建
  2. 实体创建
  3. 使用 LINQ 读取
  4. 插入实体
  5. 更新实体
  6. 删除实体

使用 LINQ 和 SPMetal 进行实验

首先,创建一个从自定义列表继承的自定义列表,并将其命名为 Manager。 添加以下自定义列和数据

生成实体模型

现在我们可以为上面的列表生成实体模型。 您可以在以下文件夹中找到 SPMetal.exeC:\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 工具。 此信息在现实世界的编程场景中是必要的。 附件包含我们讨论的源代码。

参考文献

© . All rights reserved.