C# - 如何使用lambda表达式在Entity Framework中进行简单查询?

3

我现在有一个半成品的Entity Framework模型,但是我在执行带有Where()子句的查询时遇到了问题。

我正在尝试排列:

db.BlackstoneUsers.Where(u => u.Email == User.Email); 

但我遇到了异常:

表达式不能包含 lambda 表达式

我认为这应该很简单,但我刚开始学习 Entity 和 LINQ/Lambda。

有人能给些指导吗?


UserUser.Email是什么?它只是一个简单的字符串,还是某种数据库对象? - Steven V
@StevenVondruska User是一个数据库模型,而User.Email是一个字符串。 - Brett
你是如何运行程序的? - Jonesopolis
@Jonesy 这是一个在Azure上运行的Web项目。 - Brett
2
你是在调试器的监视窗口中尝试检查吗?调试器不支持lambda表达式。 - fcuesta
显示剩余5条评论
2个回答

1

尝试在调用之外设置电子邮件

var email = User.Email
db.BlackstoneUsers.Where(u => u.Email == email); 

这会有什么作用? - Jeroen Vannevel
@JeroenVannevel 邮件将被转换为常量表达式,可以由EntityFramework代码进行翻译。 - Kyle
@brett 只向你的 EntityFramework 表达式发送常量。 - Kyle

0

你的代码看起来没问题,但是你对这个对象要做什么?

只有这些代码不会起作用。

db.BlackstoneUsers.Where(u => u.Email == email); 

但是如果你喜欢这样做呢?

var something = db.BlackstoneUsers.Where(u => u.Email == User.email); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接