0
如何将一个ListItem包装/转换/转换为生成的spmetal类? (linq 2 sharepoint)Sharepoint 2010 listitem to linq 2 sharepoint spmetal class
谢谢!
更新:
我在寻找这些,因为事件接收器使用splistitems的,我想访问数据
如何将一个ListItem包装/转换/转换为生成的spmetal类? (linq 2 sharepoint)Sharepoint 2010 listitem to linq 2 sharepoint spmetal class
谢谢!
更新:
我在寻找这些,因为事件接收器使用splistitems的,我想访问数据
时使用强类型版本和无magiv字符串是否有你有一个理由ListItem,而不是使用LINQ到SharePoint来获得您的Spmetal类?
据我所知,没有内置的方式,但你可以使用像automapper这样的工具来做到这一点。
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(除非您有一个复杂的查询,表现不佳)
更新的问题 – Zapacila 2012-08-06 20:00:11
您可以尝试将SPListItem映射到像我在第一个代码块中那样生成的类型。 Automapper是一个很好的工具,可以帮助你,如果你找不到一些内置/自动的方式来做这种转换。 – Josh 2012-08-06 20:06:49