c# - 如何使用 Linq 从 C# ASP.NET MVC 4 中的 IQueryable 中查找一个值?

标签 c# asp.net asp.net-mvc linq entity-framework

这是在使用 EF 的 C# ASP.NET MVC 4 中。我有一张 table Users其中有 Portfolio对象定义为其属性之一,Username作为另一个。 User.Identity.Name在 Razor 中,一旦用户登录,我就可以将用户名传递给我的 Controller 。User有一个 Portfolio_IdPortfolio 的表格中目的。我想要做的是获得 Portfolio_IdUser当我只需要去买Username .在下面的代码中,您会看到我有一个 var protfolioId .我的问题是它被设置为 IQueryable<int>当我需要它时,从我的 LINQ 中获取它。我可能是错的,但这是否意味着它是一个集合而不是一个单一的值?我怎样才能得到 Portfolio_Id对于 User谁的Username匹配我传递给 Action 的内容吗?

public ActionResult Index([Bind(Prefix="id")]string userName)
    {
        //find the user
        var user = _db.Users
                   .Where(u => u.UserName == userName)
                   .Select(u => new User
                   {
                       Id = u.Id,
                       UserName = u.UserName,
                       FirstName = u.FirstName,
                       LastName = u.LastName,
                       Email = u.Email,
                       Portfolio = u.Portfolio
                   });
        //find the users portfolio id
        var portfolioId = user.Select(u => u.Portfolio.Id);

        //find their portfolio
        var portfolio = _db.Portfolios.Find(portfolioId);
        if(portfolio == null)
        {
            return HttpNotFound();
        }//end of if
        return View(portfolio);
    }//end of Index

最佳答案

var portfolio = _db.Users
                   .Where(u => u.UserName == userName)
                   .Select(u =>u.Portfolio)
                   .FirstOrDefault();
if(portfolio == null)
        {
            return HttpNotFound();
        }//end of if
        return View(portfolio);

关于c# - 如何使用 Linq 从 C# ASP.NET MVC 4 中的 IQueryable 中查找一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20176819/

相关文章:

C#:更新 List<of T> 中的项目值

c# - 使用 wp8 内置 json 类反序列化带有空格的 Json 属性名称

javascript - Azure 上使用 javascript 运行网页的计划任务

asp.net - 在 Asp.net MVC 5 应用程序中将 AngularJS 升级到 Angular 6

asp.net - 将附加属性添加到 Entity Framework 4编码第一个CTP 5实体

c# - UnityContainer.BuildUp() - 仅当属性为空时,我可以让它将新实例注入(inject)到属性中吗?

c# - 用于抑制空列表的 XmlSerialization 的魔法名称

c# - 在asp.net中是否可以使用静态LINQ to SQL DataContext维护事务?

c# - LINQ to SQL调用存储过程

asp.net - 在ASP MVC中执行Powershell