Pat*_*ckB 10 c# entity-framework
我已经阅读了一些实体框架6的教程......
基础很简单.
using (var context = new MyContext())
{
User u = context.Users.Find(1);
}
Run Code Online (Sandbox Code Playgroud)
但是如何在用户的"DbSet"上使用"Where"或其他内容?
public class MyContext : DbContext
{
public MyContext()
: base("name=MyContext")
{
//this.Database.Log = Console.Write;
}
public virtual DbSet<User> Users { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
用户
[Table("User")]
public class User : Base
{
public Guid Id { get; set; }
[StringLength(100)]
public string Username { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是不起作用的问题.
string username = "Test";
using (var context = new MyContext())
{
User u = from user in context.Users where user.Username == username select user;
}
Run Code Online (Sandbox Code Playgroud)
错误:源类型"DbSet"的查询模式没有实现.找不到"哪里".可能缺少"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)
Run Code Online (Sandbox Code Playgroud)
Pat*_*ckB 35
感谢@Grant Winney和@Joe.
添加using System.Linq;
到文档的命名空间/顶部我正在修改上面的代码修复了问题.
使用上面的行,它适用于列表的第一项.
User user = (select user from context.Users where user.Username == username select user).First();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16179 次 |
最近记录: |