1
asp.net(バージョン5のMVCを使用)を初めて使用しましたが、私はそれを学びたいと考えています。 多対多の関係のためにDbContextを使いたいと思っていて、いくつかのチュートリアルを見てみました。Entity Frameworkの多対多リレーションシップのエラー
私は困惑だと助けを強くお願い申し上げ「コレクションナビゲーションBuilderは、メソッドWithManyが含まれていません」 - 私は
は間違いを得ます。
私の2つのモデルクラスは、dbコンテキストの下に掲載されています。
namespace WebApplication2.Models
{
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
public DbSet<Caretaker> CareTakers { get; set; }
public DbSet<Child> Children { get; set; }
public DbSet<Fee> Fees { get; set; }
public DbSet<Feetype> Feetypes { get; set; }
public DbSet<Message> Messages { get; set; }
public DbSet<Photo> Photos { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
//
builder.Entity<Caretaker>()
.HasMany<Child>(c => c.Children)
.WithMany
// .WithMany(s => s.ApplicationUsers)
// .Map(t => t.MapLeftKey("CourseId")
// .MapRightKey("StudentId")
// .ToTable("CourseStudent"));
}
}
}
名前空間WebApplication2.Models {
public class Caretaker
{
public Caretaker(string Name, string LastName, string Gender, DateTime Bday, string Email,string Phone) {
this.Name = Name;
this.LastName = LastName;
this.Gender = (Gender)Enum.Parse(typeof(Gender), Gender);
this.Bday = Bday;
this.Email = Email;
this.Phone = Phone;
Children = new List<Child>();
}
[ScaffoldColumn(false)]
public int CareTakerID { get; set; }
public Gender Gender { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public DateTime Bday { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
}
using System.Linq;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
namespace WebApplication2.Models
{
public enum Gender { Male, Female }
public class Child
{
public Child(string Name,string LastName, string Gender,DateTime Bday)
{
this.Name = Name;
this.LastName = LastName;
this.Gender = (Gender)Enum.Parse(typeof(Gender), Gender);
this.Bday = Bday;
Photos = new List<Photo>();
Caretakers = new List<Caretaker>();
ApplicationUsers = new List<ApplicationUser>();
Fees = new List<Fee>();
}
[ScaffoldColumn(false)]
public int ChildID { get; set; }
public String Name { get; set; }
public String LastName { get; set; }
public Gender Gender { get; set; }
public DateTime Bday { get; set; }
public ICollection<Photo> Photos { get; set; }
public virtual ICollection<Caretaker> Caretakers { get; set; }
public virtual ICollection<ApplicationUser> ApplicationUsers { get; set; }
public ICollection<Fee> Fees { get; set; }
}
}
を私が間違えていた場合、私は申し訳ないが、私はそれをcopypastingことで、あなたのコードを使用してみました。 モデルビルダが現在のコンテキストに存在しないというエラーを受け取りました。 以前使用していたビルダーを使用しても問題は残ります。 説明してください。 私はyor答えをありがとうございます。 – Greenmachine
OK、あなたはあなたのビルダーと呼ばれました。答えを編集します。 –
はい、それは私が挿入したコードです。 まだ私はOPで説明したエラーがまだあります。 私はあなたの答えをありがとうございます。 – Greenmachine