gpt4 book ai didi

c# - 为什么我无法访问我的对象模型的属性?

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:43 24 4
gpt4 key购买 nike

出于某种奇怪的原因,即使我将其转换为模型类型,我也无法访问该对象的属性。有谁知道为什么? (这可能很明显,但我是 C# 的新手,所以请耐心等待!:o))

Users currentUser = new Users();            
currentUser = (from x in db_tc.Users where x.Id == Convert.ToInt32(User.Identity.Name) select x);

当我调用 currentUser , 我只能访问 CRUD 方法和 List<Users>属性名为 usrList .我没有创建列表定义,所以我想这是自动创建的 Entity Framework 的一部分。

我试过类型转换 currentUser(Users)在实体查询之前,它根本没有帮助。

最佳答案

那是因为您只创建了查询,还没有实际执行它。添加Single()(或First()等)得到结果:

var currentUser = (from x in db_tc.Users where x.Id == Convert.ToInt32(User.Identity.Name) select x).SingleOrDefault();
  • Single() : 获取序列的第一个元素,但如果没有找到元素将抛出异常如果序列有多个元素。
  • First() : 获取序列的第一个元素,如果没有找到则抛出异常。
  • SingleOrDefault()FirstOrDefault() : 与上面相同,但将返回 default(T) 而不是抛出空序列。

LINQ 的这个“延迟执行”方面可能是最难理解的部分。基本思想是您可以使用查询操作(Where()Select() 等)构建一个查询,并且然后您可以执行该查询以实际获得其结果,使用非延迟执行操作之一(Single()ToList() 等)

关于c# - 为什么我无法访问我的对象模型的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207111/

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