gpt4 book ai didi

c# - Linq VAR 和类型化对象

转载 作者:行者123 更新时间:2023-11-30 13:11:37 24 4
gpt4 key购买 nike

我想要一个代码示例。目前我在 c# 和 asp.net 4 ef4 中使用 linq

       var querySlotOrder = from slot in context.CmsSlots
where slot.SlotId == myCurrentSlotId
select slot;

if (querySlotOrder.SlotOrder == myNewSlotOrder)
e.Cancel = true;

此 linq 查询仅返回一条记录。

使用 VAR 我无法获取类型化对象,也无法访问其属性 SlotOrder。

如何更改查询?谢谢你的帮助

关于该主题的有用资源:

http://msdn.microsoft.com/en-us/library/bb384065.aspx

http://msdn.microsoft.com/en-us/library/bb397947.aspx

http://msdn.microsoft.com/en-us/library/bb397678.aspx

最佳答案

即使您的查询返回单个对象,Select您在幕后使用的方法没有。它返回 IQueryable<T>在 EF 中。

您应该使用类似 Single 的方法, SingleOrDefault , First , FirstOrDefault如果你想存储单个对象。

var querySlotOrder = (from slot in context.CmsSlots
where slot.SlotId == myCurrentSlotId
select slot).Single();

四种方法的区别在于:

  • Single : 返回序列中唯一的元素,如果序列中不存在一个元素则抛出异常。
  • SingleOrDefault :返回序列的唯一元素,如果序列为空则返回默认值;如果序列中有多个元素,此方法将抛出异常。
  • First : 返回序列的第一个元素。
  • FirstOrDefault : 返回序列的第一个元素,如果序列不包含任何元素,则返回默认值。

(来自 MSDN 的定义)

关于c# - Linq VAR 和类型化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181753/

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