【发布时间】:2016-04-07 23:39:53
【问题描述】:
我是 asp.net 的新手(使用版本 5 MVC),但我正在努力学习它。 我想将 DbContext 用于多对多关系,并尝试查看几个教程。
我弄错了 - “Collection Navigation Builder 不包含方法 WithMany”
我很困惑,非常感谢您的帮助。
我的两个模型类与 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; }
}
}
【问题讨论】:
标签: c# database entity-framework