我正在创建一个API,以在数据库上运行某些CRUD函数。我正在使用Entity Framework核心和.net核心以及Automapper来映射实体和DTO。
数据库有许多相关的表,因此有一些导航属性。我从所有相关表中读取数据库中的数据都没有问题,并且可以更新父DTO中属性的值。但是,我在努力的地方是使用导航属性更新存储在相关表中的值。
我认为我为这些设置了错误的Automapper,但我尝试了许多尝试却无济于事。
在我提供的代码示例中,我希望能够更新存储在RelatedTable中的属性。
Entity Framework实体类示例:
public DatabaseEntity
{
public StudentID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public virtual ICollection<RelatedTable> RelatedTable { get; set; }
}
DTO类:
public DatabaseEntityDTO
{
public string Name { get; set; }
public int Age { get; set; }
public virtual ICollection<RelatedTable> RelatedTable { get; set;}
}
AutoMapper:
cfg.CreateMap<DatabaseEntity, DatabaseEntityDTO>();
我可以获取在DatabaseEntityDTO中填充的数据,包括RelatedTable。但是,在Patch函数中,当它映射DTO并指出它无法映射属性并列出DatabaseEntityDTO中的所有属性时,它将引发错误。