目前项目需要比较复杂的查询功能, 如果直接写CAML的话以后维护非常麻烦, 然后暂时用LINQ to SharePoint替代之~ URL:
http://linqtosharepoint.codeplex.com/
最大的优点是我不用写CAML了, 非常容易实现一些简单的查询功能,
问题也有很多,譬如:
问题1:
工具SpMetal生产的代码文件类上面出现以下属性:
[global::BdsSoft.SharePoint.Linq.ListAttribute("tbl_task", Id = "9a79692c-2a8f-4f07-ae90-57cfb1abb213", Version = 28, Path = "/Lists/tbl_task")]
在开发机器上开发,然后部署到测试环境以及生产环境中, ID是不一样的; 发布的时候我都要重新修改这个值来编译, 而且最郁闷的是那个Version是经常变的,这样就抛出了异常了:
List version mismatch between entity type and list definition on the server.
问题2:
合法情况:
u.FirstName.Contains(u.NickName)
不合法情况:
假如我需要一个多选的字段内容, 我把选择的信息放在了一个List<string> list变量中,然后使用以下代码将直接报错:
list.Contains(u.NickName)
SP0007: Query predicate contains a method call on a non-entity property: Contains.
以上是我碰到的问题,欢迎大家讨论~~
最后: 当本人下载该源代码后发现里面取数据的方式是通过Web service的方式,所以速度性能上受到影响,建议大数据量的查询不推荐使用Linq to sharepoint