gpt4 book ai didi

c# - 从 lambda 查询的结果访问关联时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:06 26 4
gpt4 key购买 nike

当您的子记录通过 lambda 查询加载时,是否有人遇到过使用 LINQ to SQL 加载关联的问题?例如:

var orderLine = db.OrderLines.
Where(ol => ol.ID == orderLineID select ol).
First();
// navigate to order via the association
var order = orderLine.GetOrder();

我得到的基本上是 GetOrder() 的空结果。

但如果我改为这样做:

var orderLine = (from ol in db.OrderLines where ol.ID == orderLineID).First();
var order = orderLine.GetOrder();

工作正常。

什么会导致这种情况?这是错误吗?

编辑:这是与 Lambda 表达式一起工作的实际代码,但注释掉了它不起作用

var msg = db.Messages.Where(m => m.ID == msgID).First();if (msg.SentTS.HasValue) return;// Get the message recipients// I don't get it.. why doesn't lambda expressions work here? returns 0 results!// var testtos = msg.GetMessageTos.Where(mt => mt.Active);var tos = from mt in db.MessagesTos          where mt.Active && mt.MessageID == msgID          select mt;

最佳答案

你也可以试试这个,我觉得这样更干净一些。

var orderLine = db.OrderLines.Single( ol => ol.ID == orderLineID ); 
var order = orderLine.GetOrder();

我相信在你的非工作示例中你想使用 .First() 而不是 .Single()

关于c# - 从 lambda 查询的结果访问关联时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3558640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com