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