カテゴリとプロジェクトの間に1対多の関係を定義しようとしています(カテゴリには1つまたは複数のプロジェクトを含めることができ、プロジェクトには1つまたはまったくカテゴリを含めることができません)
public class Project : Entity {
public virtual string Title { get; set; }
public virtual Guid? CategoryId { get; set; }
public virtual Category Category { get; set; }
}
public class Category : Entity {
public virtual string Name { get; set; }
public virtual ICollection<Project> Projects { get; set; }
}
次のマッピングを定義しました。
modelBuilder.Entity<Project>()
.MapSingleType(p => new {
ProjectId = p.Id,
p.CategoryId,
p.Title,
p.Slug,
p.ShortDescription,
p.Description,
p.CreatedOn,
p.UpdatedOn
})
.ToTable("Projects");
modelBuilder.Entity<Category>()
.MapSingleType(c => new {
CategoryId = c.Id,
c.Name,
c.CreatedOn,
c.UpdatedOn
})
.ToTable("Categories");
// relationships
modelBuilder.Entity<Project>()
.HasOptional<Category>(p => p.Category)
.WithMany()
.HasConstraint((p, c) => p.CategoryId == c.Id);
これは正常に機能しているように見えますが、EFはCategories_Productsテーブルを生成しています(多対多の関連付けに使用されます)。
デフォルトのデータベース初期化子を無効にしましたが、このテーブルはまだ生成されています。私は何が間違っているのですか?
ありがとうベン