簡體   English   中英

將 ClientContext 創建為 Singleton 以及如何在 clientcontext 對象上創建包裝器?

[英]Create ClientContext as Singleton and how to create wrapper over clientcontext object?

我正在創建一個類庫來管理共享點上的文件,我將為此使用 CSOM 庫。

但是我有點困惑,比如如何管理與 Entity 框架的 DbContext 相同的Client Context ,比如是將它創建為 Singleton 對象還是在每次使用時使用和處理。

以及如何像在 EF 的 DbContext 上創建包裝器一樣在 ClientContext 對象上創建包裝器?

CSOM 中沒有內置甚至可用的真實實體框架。 使用 CSOM 編程更像是在使用純 CSOM 時處理數據集。 因此,使用 CSOM 在 SharePoint 中存儲數據如下所示:

 List courseList= clientContext.Web.Lists.GetByTitle("Course");
    clientContext.Load(courseList);
    clientContext.ExecuteQuery();

    var courseItemInformation = new ListItemCreationInformation();
    ListItem courseItem = courseList.AddItem(courseItemInformation);
    courseItem["Title"] = course.Title;
    courseItem["Coach"] = course.Coach;
    courseItem["Description"] = course.Description;
    courseItem["Audience"] = course.Audience.ToString();            
    courseItem.Update();

    clientContext.ExecuteQuery();
    return courseItem.Id;

然而,有一個名為“ AweCsome-Framework ”的框架試圖模仿實體框架的行為。 上面使用 aweCsome 框架的相同結果如下所示:

 awecsomeTable = new AweCsomeTable(clientContext);
 return awecsomeTable.InsertItem(course);

在這兩個示例中,“課程”都是一個簡單的實體。

請注意,Awecsome 框架不允許所有 SharePoint 列表操作,但標准 CRUD 確實有效。 它還缺少延遲加載等功能,但它是您現在可以在 SharePoint 上獲得的最接近實體框架的功能。

您可能還想看看 PnP(模式和實踐),它有助於一些標准操作。

另外: ClientContext 比 DbContext 多一點。 它不僅與數據有關,還包含有關站點、用戶和權限的信息。 SharePoint 根本不是數據庫(應該被視為一個數據庫,尤其是在性能方面)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM