3

Visual Studio 2013 の"Add - Scaffold"を使用して、別のモデルと多対多の関係を持つモデルに CRUD を追加できるようにしたいと考えています。残念ながら、スキャフォールディングされたビュー/コントローラーは関係にまったく触れず、作成/編集ビューで SelectList がレンダリングされません。

ただし、Scaffold は 1 対多の関係ではうまく機能します。多対多は 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 が機能するためにスルーするのではなく、実際のモデルとして宣言する必要がありますか?

4

1 に答える 1

8

どうやら組み込みの Scaffold 機能は多対多の関係をサポートしていないようです。

ここ MSDN には、これに関する非常に優れたブログ投稿があり、使用可能なソリューションが含まれています。

于 2013-11-14T09:07:14.247 に答える