【问题标题】:Using Database View in MVC在 MVC 中使用数据库视图
【发布时间】:2013-11-30 23:38:54
【问题描述】:

我想在 数据库视图 中组合一些数据库表,并将其作为实体类检索,就像我为表所做的那样。例如,假设我的数据库中有 StudentCity 表和 StudentView。在这个场景中:

1) 我是否应该像为 StudentCity 表一样为 StudentView 创建一个Entity

2) 当然可以考虑使用 ViewModel 来代替 View(这样就不需要额外的实体)。但是,由于某些限制或对 Lambda 或 Linq 的了解不足,是否可以在 MVC 中使用 Database View 而不是 ViewModel?

3) 我想通过组合 3-4 个字段在我的下拉列表中显示一些数据,如下所示: Michael Damn(1980 年 6 月 1 日 - 伦敦)

那么,将这些字段组合在数据库视图中而不是控制器或模型中更好吗?提前致谢。

【问题讨论】:

    标签: asp.net-mvc entity-framework view lambda viewmodel


    【解决方案1】:

    你最好创建一个新模型 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;
       }
    }
    

    【讨论】:

    • 我会尝试并通知您。但是,在尝试之前,请您澄清一下上述其他要点吗?你也可以通过更新你的答案来回复他们吗?我认为我们可以使用数据库视图来显示数据,而不是插入/更新/删除操作。真的吗?提前致谢。
    • 我试过了,但由于使用不当而无法正常工作。你能解释一下我应该一步一步做什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2012-05-16
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多