【发布时间】:2018-02-16 01:14:00
【问题描述】:
目前我对 ASP.NET MVC 和实体框架非常陌生。目前我已经使用它大约 3 个月了。
我有一个运行 Entity Framework 6 的 ASP.NET MVC 5 应用程序。这是来自启用了自动迁移的现有数据库的代码优先方法,因此我的所有实体类都是自动生成的。我正在尝试向我的 MVC 应用程序添加一个返回特定结果集的视图。目前,以前的开发人员将应用程序设置为仅接受实体类以将数据显示到 DataTable DataTables.net。进一步澄清:
我的模型中有两个实体表,它们是 MySQL 中的表。
| Samples | SampleLocation |
|:------------------|---------------:|
| Id | LocationId |
| DateAssigned | Name |
| CheckedInDate | Size |
| SampleLocationId | |
| ...etc | ...etc |
我想要完成的是查询两个表并将结果返回到我的 MVC 应用程序的视图中。从那里运行更新并更新 Samples 表中的几列。以下是返回我需要的结果的大致查询。
SELECT Samples.Id, samples.CheckedInDate, SampleLocation.Name, SampleLocation.Size,
SampleLocation.LocationId
FROM (Samples join SampleLocation
ON ((Samples.SampleLocationId = SampleLocation.LocationId)))
WHERE isnull(samples.CheckedInDate) ORDER BY samples.Id
根据我所做的研究,有几种方法可以做到这一点。我尝试过的可以给我一个可以使用的类的方法是创建一个存储过程,然后更新模型——这会破坏模型并取消映射模型中的每个实体。我尝试使用查询创建一个视图以添加到模型中 - 但这也会破坏它并取消映射所有内容。后来我发现这是一个错误。
所以我的问题是,如何将查询映射到将结果返回到视图的实体?有没有更好的方法来解决这个问题?
【问题讨论】:
标签: c# asp.net-mvc entity-framework entity-framework-6