Benutzer mit den meisten Antworten
Sharepoint ListenDaten mittels Linq ändern oder geht nur die Abfrage

Frage
-
Hallo,
ich habe mir nach einer Anleitung im Web ein Webpart gebaut das mit Linq auf eine Liste zugreift und diese ausliest.
Habe mit SPMetal eine Klasse erstellt und das ganze abgefragt. Klappt auch wunderbar.
MylibDataContext hrDC = new MylibDataContext("http://SharePoint"); var jobs = from jobList in hrDC.Calendar orderby jobList.Title select new { jobList.Title, jobList.StartTime, jobList.EndTime, jobList.Xtime2 };
Meine Frage ist kann ich mit meiner mittels SPMetal erstellten Klasse die Daten auch verändern???
Also ist es möglich das ich mit Linq meine Daten in einer Sharepoint liste ändern kann oder ist das nur zum Abfragen geeignet.
Danke für jeden Hinweis
Gruss
Frederick
Antworten
-
Hi Fsteinke,mit dem LinQ-Ausdruck erzeugst Du neue (anonyme) Objekte. Änderungen der Eigenschaften in diesen Objekte wirken sich nicht auf die Daten im SharePoint aus.Wenn Du Dir jedoch im LinQ-Ausdruck die Originalobjekte geben lässt, dann kannst Du die Eigenschaftswerte ändern und hrDC.SubmitChanges() die Änderungen in die SharePoint-Liste zurückschreiben.--
Viele Gruesse
Peter- Als Antwort vorgeschlagen Peter Fleischer Samstag, 13. Oktober 2012 04:26
- Als Antwort markiert Robert Breitenhofer Montag, 29. Oktober 2012 08:39
-
Hallo Frederick,
wie Peter schon gesagt hat selektierst du nur anonyme Objekte aus der vorhandenen Menge. Wenn du mit SPMetal den LINQ2SharePoint Context erstellst, werden - entsprechend der ContentTypes auf deiner SharePoint-SiteCollection - Models erstellt.
Angenommen du hast einen ContentType Customer der in der Customers Liste verwendet wird, so kannst du dann wie folgt einen neuen Kunden erstellen
using(var ctx = new MySharePointSiteDataContext("http://mysharepointsite")){ var customer = new Customer(){ FirstName = "Thorsten", LastName = "Hans", IsDeveloper = true }; ctx.Customers.InsertOnSubmit(customer); ctx.SubmitChanges(); }
Darüber hinaus solltest du dir auf jeden Fall angewöhnen den LINQ Context zu disposen, weil sonst unmanaged Resourcen nicht freigegeben werden und im Speicher unnötig Platz in Anspruch nehmen. Ich habe zum Thema LINQ 2 SharePoint einen Artikel im SharePoint Adventskalender 2011 veröffentlicht den du hier (http://sharepointadvent.de/2011/12/04/linq-2-sharepoint/) finden kannst.
Thorsten
Es soll Fälle geben, in denen die Suche bereits die Antwort auf deine Frage weiß.
- Bearbeitet Thorsten HansMVP Donnerstag, 11. Oktober 2012 21:46
- Als Antwort vorgeschlagen Stefan BauerMVP Donnerstag, 18. Oktober 2012 10:28
- Als Antwort markiert Robert Breitenhofer Montag, 29. Oktober 2012 08:39
Alle Antworten
-
Hi Fsteinke,mit dem LinQ-Ausdruck erzeugst Du neue (anonyme) Objekte. Änderungen der Eigenschaften in diesen Objekte wirken sich nicht auf die Daten im SharePoint aus.Wenn Du Dir jedoch im LinQ-Ausdruck die Originalobjekte geben lässt, dann kannst Du die Eigenschaftswerte ändern und hrDC.SubmitChanges() die Änderungen in die SharePoint-Liste zurückschreiben.--
Viele Gruesse
Peter- Als Antwort vorgeschlagen Peter Fleischer Samstag, 13. Oktober 2012 04:26
- Als Antwort markiert Robert Breitenhofer Montag, 29. Oktober 2012 08:39
-
Hallo Frederick,
wie Peter schon gesagt hat selektierst du nur anonyme Objekte aus der vorhandenen Menge. Wenn du mit SPMetal den LINQ2SharePoint Context erstellst, werden - entsprechend der ContentTypes auf deiner SharePoint-SiteCollection - Models erstellt.
Angenommen du hast einen ContentType Customer der in der Customers Liste verwendet wird, so kannst du dann wie folgt einen neuen Kunden erstellen
using(var ctx = new MySharePointSiteDataContext("http://mysharepointsite")){ var customer = new Customer(){ FirstName = "Thorsten", LastName = "Hans", IsDeveloper = true }; ctx.Customers.InsertOnSubmit(customer); ctx.SubmitChanges(); }
Darüber hinaus solltest du dir auf jeden Fall angewöhnen den LINQ Context zu disposen, weil sonst unmanaged Resourcen nicht freigegeben werden und im Speicher unnötig Platz in Anspruch nehmen. Ich habe zum Thema LINQ 2 SharePoint einen Artikel im SharePoint Adventskalender 2011 veröffentlicht den du hier (http://sharepointadvent.de/2011/12/04/linq-2-sharepoint/) finden kannst.
Thorsten
Es soll Fälle geben, in denen die Suche bereits die Antwort auf deine Frage weiß.
- Bearbeitet Thorsten HansMVP Donnerstag, 11. Oktober 2012 21:46
- Als Antwort vorgeschlagen Stefan BauerMVP Donnerstag, 18. Oktober 2012 10:28
- Als Antwort markiert Robert Breitenhofer Montag, 29. Oktober 2012 08:39
-
Hallo fsteinke,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.