我正在创建一个费用报告项目——我第一次使用 MVC。
这是一个 Database First 项目,我正在使用 Oracle ODP。
我有一个具有以下类的实体模型: ExpenseReport ExpenseItem ExpenseType
费用报告将包含许多费用项目。
每个费用项目都将属于该 ExpenseType 类中的类型列表中的特定费用类型 - 因此是多对一的关系。
单个费用类型记录包含每种类型的类别,以及与该类型一起使用的描述/评论字段的标题。
在我看来,我能够显示该报告以及该报告的所有费用项目的列表。我正在使用以下代码通过我的 Edit 或 Details 控制器执行此操作:
public ActionResult Details(long id)
{
using (var db = new Entities())
{
var thisReport = db.ExpenseReport.Find(id);
thisReport.expItems = db.ExpenseItem.Where(e => e.BB_EXPREPORT_ID == id).ToList();
return View(thisReport);
}
}
我尝试将其添加到代码中(就在返回视图行上方)以还包括每种类型的费用类型值(类别、标题),但由于转换问题而失败 - 无法隐式转换(您是否缺少转换? )
foreach (ExpenseItem item in thisReport.expItems)
{
item.expType = db.ExpenseType.Where(e => e.BB_EXP_TYPE == item.BB_EXP_TYPE);
}
我的问题:
- 有没有办法可以设置我的模型类,这样我就不需要添加这些语句?IE 我不能修改虚拟对象 Get 语句以将它们拉到那里吗?或者我可以修改实体模型文件来获取这些值吗?是加载问题吗?我关闭了延迟加载。
- 如果没有办法在模型级别执行此操作以便将虚拟对象包含在 get 中,那么我如何在上面的代码中设置强制转换以从 ExpenseType 表中提取该给定费用类型的值?
谢谢。