大佬教程收集整理的这篇文章主要介绍了在asp.net core 3.1 实体错误中保存数据,它添加了字段,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[table("data_details")]
public class DataDetail
{
[Key]
[display(name = "ID")]
[column("ID")]
public String ID { get; set; }
[display(name = "qualification")]
[column("qualification")]
public decimal? qualification { get; set; }
[display(name = "DATA CONfig ID")]
[column("data_config_ID")]
public String DataConfigID { get; set; }
public DataConfig DataConfig { get; set; }
}
modelBuilder.Entity<DataDetail>().HasOne(c => c.Dataconfig).WithMany(w => w.DataDetails).HasForeignKey(c => c.DataConfigID);
modelBuilder.Entity<DataDetail>().HasOne(c => c.Data).WithMany(w => w.DataDetails).HasForeignKey(c => c.DataID);
保存时
_context.Add(dataDetail);
_context.SaveChanges();
它试图保存,但在日志中我收到一个错误,就像它试图添加一个额外的字段
INSERT INTO `data_details` (`ID`,`qualification`,`data_config_ID`,`DataID`)
VALUES (@p0,@p1,@p2,@p3);
Microsoft.EntityFrameworkCore.update[10000]
An exception occurred in the database while saving changes for context type 'Systema.Data.SystemaContext'.
Microsoft.EntityFrameworkCore.dbupdateException: An error occurred while updating the entrIEs. See the inner exception for details.
---> mysql.data.MysqLClIEnt.MysqLException (0x80004005): UnkNown column 'DataID' in 'fIEld List'
此表中根本未指定DataID :S
在您的 dbcontext
中,您在 @H_729_5@many-to-many 和 Dataconfig
之间创建了 Data
关系。EFCore 将创建 DataConfigId
和 DataId
作为外部默认为 DataDetail
键。
添加 DataDetail
表示在 Dataconfig
和 Data
之间创建关系。你添加的DataId
和DataconfigId
必须是已经存在的实体,否则会报错。
您的代码应该是:
public class Data
{
public String Id { get; set; }
public String Name { get; set; }
public IEnumerable<DataDetail> DataDetails { get; set; }
}
public class DataDetail
{
[Key]
[Display(Name = "ID")]
[column("id")]
public String Id { get; set; }
[Display(Name = "qualification")]
[column("qualification")]
public decimal? qualification { get; set; }
[Display(Name = "DATA CONFIG ID")]
[column("data_config_id")]
public String DataConfigId { get; set; }
public DataConfig DataConfig { get; set; }
[Display(Name = "DATA Data ID")]
[column("data_id")]
public String DataId { get; set; }
public Data Data { get; set; }
}
public class DataConfig
{
public String Id { get; set; }
public String Name { get; set; }
public IEnumerable<DataDetail> DataDetails {get;set;}
}
关于many to many releationship。
以上是大佬教程为你收集整理的在asp.net core 3.1 实体错误中保存数据,它添加了字段全部内容,希望文章能够帮你解决在asp.net core 3.1 实体错误中保存数据,它添加了字段所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。