ASP.NET MVC实体框架CodeFirst多对多(CRUD)

时间:2012-02-01 23:19:09

标签: asp.net-mvc ef-code-first many-to-many

我有一些问题,但我将从第一个和最小的开始。我有两个模型,有很多关系,类别和项目。在每个模型中,我有另一个模型的ICollection。我将集合初始化为Project构造函数的新HashSet(),反之亦然。我在网上看到,这会在你的数据库中创建一个新表,每个模型的PK作为新表中的PK。我通过Fluent API定制命名它们,但你明白了。

这很好。所以我制作我的控制器并创建和使用脚手架来创建CRUD视图。我创建了几个类别..很棒。现在,当我创建一个新项目时,我想要的是向我显示我之前创建的类别列表,并且在推送项目之前要求至少选择一个。该视图显示根本没有要选择的类别,并允许它作为null通过。我知道如何制作一个必需的属性,但我不知道如何制作一个所需的集合属性,并从数据库中获取所有类别以显示在项目创建视图中以供选择....

2 个答案:

答案 0 :(得分:2)

尝试:

Context.Project.Include(p=>p.Category)
在查询代码中

你需要

using System.Data.Entity;

获取include方法

答案 1 :(得分:0)

要启用延迟加载,您还需要将属性标记为“虚拟”;否则,您将始终使用.Include()方法急切加载它们。