Entity framework 无法与EF fluent API建立一对多关系

Entity framework 无法与EF fluent API建立一对多关系,entity-framework,ef-fluent-api,.net-core-3.1,Entity Framework,Ef Fluent Api,.net Core 3.1,我正试图通过fluent-api使用EF-Core配置一对多关系,我不断收到以下错误: 表达式“x=>x.parent”不是有效的属性表达式。这个 表达式应表示简单的属性访问:“t=> t、 “我的财产”。(参数'propertyAccessExpression')” 型号 公共类父类{ 公共int ID{get;set;} 公共字符串名称{get;set;} 公共ICollection子项{get;set;} } 公营儿童{ 公共int ID{get;set;} 公共字符串名称{get;set

我正试图通过
fluent-api
使用
EF-Core
配置一对多关系,我不断收到以下错误:

表达式“x=>x.parent”不是有效的属性表达式。这个 表达式应表示简单的属性访问:“t=> t、 “我的财产”。(参数'propertyAccessExpression')”

型号

公共类父类{
公共int ID{get;set;}
公共字符串名称{get;set;}
公共ICollection子项{get;set;}
}
公营儿童{
公共int ID{get;set;}
公共字符串名称{get;set;}
公共家长;
public int ParentId{get;set;}
}
上下文

public class MyContext : DbContext {
            public DbSet<Parent> Parents { get; set; }
            public DbSet<Child> Children { get; set; }
            protected override void OnModelCreating(ModelBuilder modelBuilder) {

                base.OnModelCreating(modelBuilder);
                modelBuilder.Entity<Child>().HasKey(x => x.ID);
                modelBuilder.Entity<Parent>().HasKey(x => x.ID);

                modelBuilder.Entity<Child>()
                                .HasOne(x => x.parent)
                                .WithMany(y => y.Children)
                                .HasForeignKey(t => t.ParentId);
            }

            public MyContext(DbContextOptions options):base(options) { }
        }
公共类MyContext:DbContext{
公共数据库集父项{get;set;}
公共DbSet子项{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder){
基于模型创建(modelBuilder);
modelBuilder.Entity().HasKey(x=>x.ID);
modelBuilder.Entity().HasKey(x=>x.ID);
modelBuilder.Entity()
.HasOne(x=>x.parent)
.有许多(y=>y.孩子)
.HasForeignKey(t=>t.ParentId);
}
公共MyContext(DbContextOptions选项):基本(选项){}
}
用法

 static async Task Main(string[] args)
        {
            string connectionString = "[someconnectionstring]"
            var optionsBuilder = new DbContextOptionsBuilder<MyContext>();
            optionsBuilder.UseSqlServer(connectionString);
            MyContext context = new MyContext(optionsBuilder.Options);
            await context.Parents.AddAsync(new Parent { 
                                               Name = "myparent", 
                                               Children = new List<Child>() {
                                                                new Child { Name = "Child1" },
                                                                new Child { Name = "Child2" } }
                                               }); //i am getting the error here
            await context.SaveChangesAsync();
}
static async Task Main(字符串[]args)
{
string connectionString=“[someconnectionstring]”
var optionsBuilder=new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer(connectionString);
MyContext上下文=新的MyContext(optionsBuilder.Options);
wait context.Parents.AddAsync(新父项{
Name=“myparent”,
Children=新列表(){
新子项{Name=“Child1”},
新子项{Name=“Child2”}
});//我在这里得到了错误
wait context.saveChangesSync();
}

子类中的父类是一个字段。它应该是公共属性。有关更多信息,请参阅

 static async Task Main(string[] args)
        {
            string connectionString = "[someconnectionstring]"
            var optionsBuilder = new DbContextOptionsBuilder<MyContext>();
            optionsBuilder.UseSqlServer(connectionString);
            MyContext context = new MyContext(optionsBuilder.Options);
            await context.Parents.AddAsync(new Parent { 
                                               Name = "myparent", 
                                               Children = new List<Child>() {
                                                                new Child { Name = "Child1" },
                                                                new Child { Name = "Child2" } }
                                               }); //i am getting the error here
            await context.SaveChangesAsync();
}