gpt4 book ai didi

c# - ASP.NET MVC 4 从 IQueryable 获取值(value)

转载 作者:行者123 更新时间:2023-11-30 22:05:22 26 4
gpt4 key购买 nike

我这里有这个变量:var value = service.Get(UserId) 它从 IQueryable 返回数据并有结果。我想从下面截图中的结果中获取语言,我该怎么做?我尝试了 value[0].language 但没有成功:(

任何建议都会有帮助:

enter image description here

我正在寻找“英语”的语言值 请帮忙。

我试过:string value = service.Get(UserId).FirstOrDefault().Language;

我收到错误“System.Linq.IQueryable”不包含“FirstOrDefault”的定义,并且没有扩展方法“FirstOrDefault”接受类型为“System.Linq.IQueryable”的第一个参数可以找到(你错过了吗using 指令或程序集引用?)'

这是我正在使用的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebMatrix.WebData;
using CTHRC.Roti.Domain.Model;
using CTHRC.Roti.Domain.Api.Services;
using CTHRC.Roti.Domain.Data.Repositories;
using CTHRC.Roti.Data.EntityFramework.Repositories;
using CTHRC.Roti.Data.EntityFramework;

最佳答案

IQueryable 与普通数组略有不同。为了查看结果 View ,您必须枚举 IQueryable。实际上,您可以在屏幕截图中看到“展开结果 View 将枚举 IEnumerable”。这句话是这个场景的关键。如果未枚举 IEnumerable,则不会从数据库中获取任何实际数据。在代码中有多种方法可以枚举 IEnumerable,例如使用 .ToList、.Select、.Single、.First 等。

我相信您会对使用 .FirstOrDefault() 感兴趣。 “OrDefault”部分仅表示如果列表为空,则不会抛出异常。这可能需要也可能不需要,具体取决于场景。

string language = service.Get(UserId).FirstOrDefault().Language;

为了避免在没有用户返回时出现异常,可以先使用投影。

string language = service.Get(UserId).Select(u => u.Language).FirstOrDefault();

如果没有用户,它将产生 null

关于c# - ASP.NET MVC 4 从 IQueryable 获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440074/

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