2016-04-02 19 views
0

Ich habe diese Klasse:Lesen von Daten aus der Datenbank in Linq-to-SQL

public class Student1 
{ 
      public String Name { set; get; } 
      public String Number { set; get; } 

      public List<String> TakedCourses { set; get; } 

      public List<String> PassedCourses = new List<String>(); 
} 

und ich verwende Linq-to-SQL-Studenten in die Datenbank zu speichern.

Jetzt möchte ich einen Namen in der Datenbank suchen und alle Eigenschaften dieser Schüler auf ein neues Objekt von Student hinzuzufügen.

So:

Student s = new Student(); 
s = d.Students.Where(c => c.Name == cobStudents.SelectedItem.ToString()).Select(c => c); 

es nicht funktioniert, und ich weiß nicht, ho dies zu tun.

Dank

+0

Versuchen Sie ersetzen 'Select (c => c)' (die im wesentlichen die gleiche Sammlung zurückgibt, die an sie übergeben wird) mit nur 'FirstOrDefault() '(was den ersten Schüler in der Sammlung zurückgibt oder Null, wenn es keinen gibt). –

Antwort

0

Verwenden FirstOrDefault es zuerst zurückgibt passendes Element, Wo gibt alle passenden Studenten Sammlung (nicht einzelnes Element).

Student s = new Student(); 
s = d.Students.FirstOrDefault(c => c.Name 
== cobStudents.SelectedItem.ToString()); 

können Sie auch SingleOrDefault verwenden, wenn Sie sicher sind, dass die Bedingung wahr für nur ein Element.

s = d.Students.SingleOrDefault(c => c.Name 
== cobStudents.SelectedItem.ToString()); 

Und dann könnte man mit Zugang ...

if(s!= null) 
{ 
     // access s here. 
} 
+0

danke, aber es gibt Fehler für "" Select ": Student enthält keine Definition für Select – ahmadsfff

+0

Ahh .. Ich habe es verpasst, jetzt brauchen Sie nicht mehr" Select ". –

Verwandte Themen