带有实体框架的 Asp.net MVC3 应用程序。假设我有 3 张桌子;文章、类别和作者。
我使用代码优先导航属性在 Category.CategoryId -> Article.CategoryId 和 Author.AuthorId -> Article.AuthorId 之间创建关系
public virtual Category Category { get; set; }
public virtual Author Author { get; set; }
这意味着当我查看文章列表时,我必须:
return View(db.Article
.Include(c=>c.Category)
.Include(a=>a.Author)
.ToList());
为了访问类别和作者的名称,而不仅仅是他们的 id
打破这个经典模式而不在这些表之间创建关系会有多大的伤害?然后我可以从 ViewModel 中的 Author 和 Category 表中返回 SelectLists,并使用相应的名称而不是 id 直接填充我的 Article 表中的 Category 和 Author 字段,并保持数据完整性。我的查询将被简化为:
return View(db.Article.ToList());
我想我必须为这些字段创建索引以加快搜索速度。
这是在某个地方完成的还是完全错误的?它的性能更好还是更差?