设为首页 收藏本站
查看: 994|回复: 0

[经验分享] SPMetal配置 SharePoint使用Linq操作CAML

[复制链接]

尚未签到

发表于 2015-9-26 08:46:40 | 显示全部楼层 |阅读模式
如何:使用 SPMetal




SharePoint 2010





  上次修改时间: 2011年2月2日
   适用范围: SharePoint Foundation 2010
  本文介绍如何使用 SPMetal 命令行工具为 Microsoft SharePoint Foundation 解决方案生成实体类声明。

设置开发项目以使用 SPMetal



  •   将 SPMetal.exe 的路径添加到开发计算机上的 Windows %PATH% 环境变量的结尾。它通常是 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN。

    •   在 Windows Server 计算机的"开始"菜单上,右键单击"计算机",然后单击"属性"。

    •   在"系统"对话框中,单击"高级系统设置"。

    •   在"系统属性"对话框中,单击"高级"选项卡,然后单击"环境变量"。

    •   在"系统变量"列表中,突出显示"Path",然后单击"编辑"。

    •   在"编辑系统变量"对话框中,在"变量值"的末尾添加分号,然后添加包含 SPMetal.exe 的文件夹的路径。单击"确定"三次。




    注释

      如果执行此步骤时 Microsoft Visual Studio 已打开,则必须将其关闭并重新打开,然后它才能识别新 %PATH% 变量。




  •   在开发计算机上创建 SharePoint Foundation 网站以充当测试平台,您将针对该平台开发 LINQ to SharePoint 代码。您可以在当前的开发状态下确定该网站,在当前开发状态下可以确定的范围内,它应该与要解决方案包含的最终网站类型具有相同的列表、列和查阅字段。 SPMetal 工具将读取此信息。不过,您可以重新运行该工具,因此可以随着项目的进展更改设计。

  •   打开您的 Visual Studio 项目并在项目中添加一个名为 Prebuild.bat 的文本文件。

  •   如果 Prebuild.bat 尚未打开,请打开该文件,并添加以下各行。













    Echo Off
    SET SPLANGEXT=cs
    Echo Backing up previous version of generated code ...
    IF NOT EXIST .\PreviousVersionGeneratedCode MkDir .\PreviousVersionGeneratedCode
    IF EXIST SiteName.%SPLANGEXT% xcopy /Y/V SiteName.%SPLANGEXT% .\PreviousVersionGeneratedCode
    Echo Generating code ...
    SPMetal /web:http://MyServer/MySite /code:SiteName.%SPLANGEXT%

      根据需要对代码进行以下更改:

    •   如果您使用的是 Microsoft Visual Basic,请将第二行中的"cs"替换为"vb"。

    •   将"MyServer/MySite"替换为开发计算机上您将对其运行 LINQ to SharePoint 代码的网站的路径。

    •   将所有三个位置的"SiteName"替换为网站的名称。除了作为文件名之外,此字符串还将成为表示网站上的所有列表和数据的类名称的一部分。使用的字符串应该能够传达类表示整个网站;例如,显示在 URL 末尾的"MySite",或者主页上 PlaceHolderPageTitle 内容占位符的值。

      此批处理文件会保存生成的代码的以前版本,以便您在需要调试时可以将其与新版本进行比较。


  •   保存该文件,但不要 通过以下方式保存该文件:单击工具栏上的"保存"或"保存所有文件"按钮,或者选择"文件"菜单上的"保存"。在 Visual Studio 中,文本文件的默认编码与系统批处理文件不兼容。请改为在"文件"菜单上选择"将 Prebuild.bat 另存为"。在"将文件另存为"对话框中,单击"保存"按钮上的向下箭头。选择"编码保存"。在"高级保存选项"对话框中,选择"编码"下拉列表中 的"Unicode (UTF-8 无签名) - 代码页 65001",然后单击"确定"。确保选择 UTF-8 的"无签名"版本。



    提示

      如果以错误的方式意外保存了该文件,请重新打开它,稍做更改(例如添加一个空格),然后以正确的方式重新保存。如果不进行更改,则实际上不会重新保存该文件。



  •   在"解决方案资源管理器"中,右键单击项目名称,然后选择"属性"。将打开"生成事件"选项卡。

  •   在"预先生成事件命令行"(而非"生成后")框中,输入以下两行。













    cd $(ProjectDir)
    Prebuild.bat

      单击"全部保存"。

  •   首次生成项目后,Windows 的项目目录中将出现 SiteName.cs(或 SiteName.vb)文件,但是在"解决方案资源管理器"中不会出现。将其作为"现有项"添加到项目中。

  每次重新生成项目时,SPMetal 都将重新生成实体类及其属性的声明。因为每次都会覆盖生成的文件,所以不应该对其进行任何更改。然而,SPMetal 生成的类标记为"partial",因此您可以在 SPMetal 不会覆盖的手动创建的单独代码文件中向这些类添加更多成员。




  配置 SPMetal



  前面的过程仅使用生成代码文件所需的最少 SPMetal 参数,并且假定您希望 SPMetal 使用其默认设置确定在生成的代码中应该对哪些列表和列进行建模。下面的过程介绍如何改变 SPMetal 的工作方式。

调整 SPMetal 参数和默认设置



  •   若要为生成的类指定命名空间,或者指定基于它们创建的对象是否可序列化,或者指定 /web 开关中的 URL 是远程计算机(即不是开发计算机),请在 prebuild.bat 文件中向 SPMetal 命令行添加 /namespace、/serialization 或 /useremoteapi 选项。有关这些选项的详细信息,请参阅 SPMetal。

  •   若要在您自己的用户上下文之外的用户上下文中执行 SPMetal,请在 prebuild.bat 中向 SPMetal 命令行添加 /user 和 /password 选项。有关这些选项的详细信息,请参阅 SPMetal。

  •   若要对生成的代码文件使用除"cs"或"vb"之外的文件扩展名,请在 prebuild.bat 中向 SPMetal 命令行添加 /language 选项。有关此选项的详细信息,请参阅 SPMetal。

  •   首次执行 SPMetal 后检查生成的文件,并在对网站的列表、内容类型和字段(列)进行最终更改后再次检查生成的文件。在下列任一情形下,SPMetal 的默认行为创建的代码可能无法满足您的需要或者会破坏代码可读性。在此类情况下,请考虑创建 SPMetal 参数 XML 文件并在 prebuild.bat 中向 SPMetal 命令行添加 /parameters 选项。有关 XPMetal 的默认行为、参数 XML 文件或者 /parameters 选项的详细信息,请分别参阅 SPMetal 默认代码生成规则、用参数 XML 文件替代 SPMetal 默认值 和 SPMetal。

    •   表示列表的一个或多个属性具有不适当的名称。

    •   您需要在 SPMetal 建模的默认列表、内容类型和列组中包含或排除一组不同的列表、内容类型和列。







  请参阅




引用


SPMetal
概念


用参数 XML 文件替代 SPMetal 默认值

SPMetal 默认代码生成规则

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118904-1-1.html 上篇帖子: SharePoint自定义权限级别 下篇帖子: SharePoint JS延迟加载类(SP.SOD)介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表