【发布时间】:2016-12-03 20:05:44
【问题描述】:
我正在使用实体框架 6 的 asp MVC5 应用程序,并希望创建一个具有如下导航属性的对象:
public class widget
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Category Category { get; set; }
}
其中属性Category 是数据库模型中的另一个实体。当我实现 CRUD 功能时,我会像这样创建一个视图模型:
public class EditWidgetViewModel
{
public List<SelectListItem> Categories { get; set; }
public int CategoryId { get; set; }
}
并且 selectList 的内容进入 html 表单中的下拉列表。接下来,CategoryId 在用户提交表单时被发送回服务器。从那里,我目前正在执行以下操作来保存更改:
var dbWidget = new Widget
{
Name = model.Name,
Category = db.Categories.Find(CategoryId)
}
db.Widgets.Add(dbWidget);
db.SaveChanges();
所以我的问题如下:我可以在不使用db.Widgets.Find(WidgetId) 进行另一个数据库查找的情况下分配类别导航属性吗?做查找。此外,如果您有大约五个导航属性的东西,这似乎是一个重大的性能问题,每个这些属性都需要往返。
【问题讨论】:
标签: asp.net-mvc entity-framework