DbContext -> DbSet -> Where-Klausel fehlt (Entity Framework 6)
Ich habe einige Tutorials mit Entity Framework 6 gelesen ...
ie Grundlagen sind einfac
using (var context = new MyContext())
{
User u = context.Users.Find(1);
}
Aber wie benutzt man "Where" oder etwas anderes im "DbSet" mit den Benutzern?
public class MyContext : DbContext
{
public MyContext()
: base("name=MyContext")
{
//this.Database.Log = Console.Write;
}
public virtual DbSet<User> Users { get; set; }
}
Benutzer
[Table("User")]
public class User : Base
{
public Guid Id { get; set; }
[StringLength(100)]
public string Username { get; set; }
}
Und das ist das Problem, das nicht funktioniert.
string username = "Test";
using (var context = new MyContext())
{
User u = from user in context.Users where user.Username == username select user;
}
Error Das Abfragemuster für den Quelltyp 'DbSet' wurde nicht implementiert. 'Wo' wird nicht gefunden. Möglicherweise fehlt eine Referenz oder eine using-Direktive für 'System.Link'.
Wenn ich versuche, die Methoden automatisch zu vervollständigen, gibt es keine.
Warum funktioniert es nicht? :
// Bearbeiten: Durch Hinzufügen von System.Linq am Anfang der Datei werden die Funktionen des obigen Problems geändert, sodass ich kein Problem mehr habe.
Aber warum daswhere
ist jetzt falsch?
The type "System.Linq.IQueryable<User>" cant converted into "User" explicit. There already exists an explicit conversion. (Possibly a cast is missing)