我正在编写一个简单的MVC应用程序来学习ASP.NET MVC。我正在关注Pluralsight课程,他们给了我很大的帮助。但是,当涉及到LINQ时,我仍然处于黑暗中。
我有一段工作代码,我想知道它是否可以改进或更简洁。
需要做什么:
目前,我有两种方法可以做到这一点:
var board =
db.Boards
.Where(b => b.Id == id)
.Select(b => new BoardViewModel {
Title = b.Title
})
.First();
方法2:
var board =
db.Boards
.Find(id);
BoardViewModel model = new BoardViewModel();
model.Title = board.Title;
我最想知道的是,在我请求多个结果的查询中,我能够在Select扩展方法中使用lambda表达式将值赋给ViewModel,我可以在查询中使用类似的东西吗?我正在使用Find方法吗?
例如,看起来像这样:
var board =
db.Boards
.Select(b => new BoardViewModel {
Title = b.Title
}
.Find(id);
我对接近这个问题的其他方式非常感兴趣。
答案 0 :(得分:3)
这样的东西?假设你期望一个具有给定id的记录。
var board = db.Boards.Select(b => new BoardViewModel
{
Title = b.Title
}).FirstOrDefault(b => b.Id == id)