我阅读了一些使用实体框架6的教程...
基础知识很简单。
using (var context = new MyContext())
{
User u = context.Users.Find(1);
}
但是如何在"DbSet"上与用户一起使用"Where"或其他内容呢?
public class MyContext : DbContext
{
public MyContext()
: base("name=MyContext")
{
//this.Database.Log = Console.Write;
}
public virtual DbSet<User> Users { get; set; }
}
用户
[Table("User")]
public class User : Base
{
public Guid Id { get; set; }
[StringLength(100)]
public string Username { get; set; }
}
这就是问题所在,它不起作用。
string username = "Test";
using (var context = new MyContext())
{
User u = from user in context.Users where user.Username == username select user;
}
错误: 源类型'DbSet'的查询模式没有实现。'Where'未找到。可能缺少对'System.Link'的引用或using指令。
如果我尝试自动完成方法,就不会有任何方法。
为什么它不起作用?:(
// 编辑: 将System.Linq添加到文件顶部更改了上面问题的函数,以便我不再有问题。
但是为什么where
现在是错误的呢?
The type "System.Linq.IQueryable<User>" cant converted into "User" explicit. There already exists an explicit conversion. (Possibly a cast is missing)