繁体   English   中英

到LINQ 2 Sharepoint Spmetal类的Sharepoint 2010 Listitem

[英]Sharepoint 2010 listitem to linq 2 sharepoint spmetal class

如何将ListItem包装/转换/生成到生成的spmetal类? (Linq 2共享点)

谢谢!

更新:

我正在寻找这些是因为事件接收器利用了splistitems,并且我想在访问数据时使用强类型版本并且没有magiv字符串

您是否有一个ListItem而不是使用LINQ to SharePoint来获取spmetal类的原因?

据我所知,没有内置的方法,但是您可以使用自动映射器之类的工具来完成此任务。

Mapper.CreateMap<SPListItem, HandbookCodesHandbookCode>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.ID))
            .ForMember(dest => dest.CodeDescription, opt => opt.MapFrom(src => src["CodeDescription"]));
        SPWeb web = SPContext.Current.Site.RootWeb;
        SPList list = web.Lists["HandbookCodes"];

        SPListItem item = list.GetItemById(1);

        HandbookCodesHandbookCode hc = Mapper.Map<SPListItem, HandbookCodesHandbookCode>(item);

做到这一点的另一种方法是使用LINQ到SharePoint并创建一个查询来获得类似

HandbookTeamSiteDataContext ctx = new HandbookTeamSiteDataContext(SPContext.Current.Site.RootWeb.Url);

        var hb = from h in ctx.HandbookCodes
                 where h.Id == 1
                 select h;

除非为您提供SPListItem(事件接收器和工作流),否则我将尝试使用此方法而不是获取SPListItem(除非您的复杂查询当时无法很好地执行)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM