这是在使用 EF 的 C# ASP.NET MVC 4 中。我有一张 table Users
其中有 Portfolio
对象定义为其属性之一,Username
作为另一个。 User.Identity.Name
在 Razor 中,一旦用户登录,我就可以将用户名传递给我的 Controller 。User
有一个 Portfolio_Id
在 Portfolio
的表格中目的。我想要做的是获得 Portfolio_Id
的 User
当我只需要去买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/