我希望能够使用 Visual Studio 2013 中的“添加 - 脚手架”为与另一个模型具有多对多关系的模型添加 CRUD。不幸的是,脚手架视图/控制器根本没有触及关系,在创建/编辑视图中没有呈现 SelectList。
不过,Scaffold 对于一对多关系来说效果很好。多对多是 Scaffold 工具中未实现的功能,还是我做错了什么?
我正在使用流畅的 API。
这些是我的模型(为了便于阅读而剥离)
public class Category
{
public int Id { get; set; }
public virtual ICollection<Country> Countries { get; set; }
}
public class Country
{
public string Iso { get; set; }
public string GlobalName { get; set; }
public string LocalName { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
这些是 Fluent API 配置类
public class CategoryConfiguration: EntityTypeConfiguration<Category>
{
public CategoryConfiguration()
{
HasKey(c => new { c.Id });
HasMany(c => c.Countries)
.WithMany(c => c.Categories)
.Map(m =>
{
m.ToTable("CategoryCountry_JT");
m.MapLeftKey("CategoryId");
m.MapRightKey("CountryId");
});
}
}
public class CountryConfiguration : EntityTypeConfiguration<Country>
{
public CountryConfiguration()
{
HasKey(c => new { c.Iso });
Property(c => c.GlobalName).IsRequired();
Property(c => c.LocalName).IsRequired();
}
}
也许 Join Table 必须声明为真实模型而不是通过.Map(m => ...
Scaffold 才能工作?