我希望将一些数据库表组合到数据库视图中,并像对表那样作为实体类检索它。比方说,我的数据库中有、和市的表和StudentView。在这个场景中:
1)我是否应该创建一个实体用于StudentView,就像为学生和City表所做的那样?
2)当然,可以考虑使用ViewModel而不是使用视图(这样就不需要和额外的实体)。但是,由于对Lambda或Linq的一些限制或不够了解,在MVC中使用数据库视图而不是ViewModel是否可以接受?
3)我想在我的Dropdownlist列表上显示一些数据,如下所示:通过组合3-4个字段: Michael (1980年6月1日-伦敦)
那么,与控制器或模型相比,在数据库视图中组合这些字段更好吗?提前谢谢。
发布于 2013-12-01 17:52:21
您最好创建一个新的模型StudentView (不应该是一个实体--所以不需要是从dbContext派生的),您可以在您的存储库中编写如下,
public IQueryable<StudentView> GetSudents()
{
using (var db = new StudentDb())
{
var results=from student in Students
from city in City
where student.CityId==city.Id
select new StudentView { Name = student.Name, Id = student.Id, CityName=city.Name };
return results;
}
}
https://stackoverflow.com/questions/20306961
复制相似问题