我希望能够使用Visual Studio 2013中的" Add - Scaffold" 为与另一个模型有许多关系的模型添加CRUD。不幸的是,脚手架视图/控制器根本没有触及关系,在创建/编辑视图中没有呈现SelectList。
但是,脚手架适用于一对多的关系。多对多是一个未在Scaffold工具中实现的功能,还是我做错了什么?
我正在使用Fluent 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();
}
}
也许连接表必须声明为真实模型,而不是通过.Map(m => ...
来使Scaffold工作?
答案 0 :(得分:7)
显然,内置的脚手架功能不支持很多关系。
有一个pretty good blog post about it here on MSDN,它包含一个可用的解决方案。