【发布时间】:2015-04-16 15:12:05
【问题描述】:
改编自this C# MVC tutorial 我正在使用以下语句将特定用户返回到视图
User user = db.Users.Find(id);
if (user == null){return HttpNotFound();}
return View(user);
Users 模型有一个指向Auctions 的外键,因此视图可以遍历与该用户关联的拍卖列表。
Auctions 有一个名为buyerID 的字段与User.ID 对应,因此我想通过Auctions.buyerID 链接回User.userName 来显示买家姓名。
我也可以在 SQL 语句和 LINQ 中执行此操作,但我认为有更简单的方法。
如何使用User user = db.Users.Find(id); 并将其从Auctions.buyerID 的外键加入User?
这是我认为可行的方法,但当用户没有此参数时,我无法创建新参数“buyerName”。
IEnumerable<User> thisUser = from usr in db.Users
join auct in db.Auctions on usr.ID equals auct.UserID
join ur in db.Users on auct.buyerID equals ur.ID
where usr.ID == id
select new User
{
buyerName = ur.userName
};
从like this one 的其他帖子中,我读到了有关设置新课程的信息,但这似乎不符合 DRY 和 KISS 原则,因为现在我需要在不同位置有两个因一个参数而异的课程。
有没有更简单的方法来加入表格并在不创建新类的情况下获得强类型?
所以结果应该显示买家姓名而不是买家 ID#
【问题讨论】:
标签: c# asp.net-mvc linq