我正在尝试将另一个与多个关系添加到已创建到新表(多个)的表(一个)中。我有另一个目前正在工作,所以我试图复制它,但没有成功。 这是我的背景:
WsExtend.postFile(
url=url,
files = List("fileparamname" -> filepath),
bodyParams = List("albumName" -> albumName),
headers = Map("Cookie" -> cookie)
这是我试图添加的模型:
public class SkillResourceCenterAppContext : DbContext
{
public SkillResourceCenterAppContext() : base("DefaultConnection")
{
}
public DbSet<Persons> Persons { get; set; }
public DbSet<Skill> Skills { get; set; }
public DbSet<PersonSkill> PersonSkills { get; set; }
public DbSet<PersonExperience> PersonExperience { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Persons>().HasMany(x => x.PersonSkills).WithRequired(x => x.Person).HasForeignKey(u => u.PersonNumber).WillCascadeOnDelete(false);
//New Line for new model
modelBuilder.Entity<Persons>().HasMany(x => x.PersonExperiences).WithRequired(x => x.Person).HasForeignKey(u => u.PersonNumber);
modelBuilder.Entity<Skill>().HasMany(x => x.PersonSkills).WithRequired(x => x.Skill).HasForeignKey(u => u.SkillCodeID);
}
}
这是我试图创建另一个与多个关系的表的模型:
public class PersonExperience
{
public PersonExperience() { }
[Key]
public int ID { get; set; }
public string ExperienceTitle { get; set; }
public string Description { get; set; }
public int PersonNumber { get; set; }
public virtual Persons Person { get; set; }
}
其余的工作直到我尝试运行此新迁移并更新数据库。现在,每次代码访问PersonExperience表时,它都会抛出一个循环引用,同时序列化一个类型为&#39; System.Data.Entity.DynamicProxies错误的对象。我已经尝试将外键注释添加到模型中,但它不起作用。我尝试了WillCascadeOnDelete,似乎没有任何工作。我得到的最接近的是将ScriptIgnore注释添加到PersonExperiences模型中的虚拟人,但是Person值不会显示在角度ui网格中。目前,数据库显示PersonExperiences表具有外键作为PersonNumber。任何帮助或建议表示赞赏。
答案 0 :(得分:0)
我通过使用Select语句修复它来检索记录。在将where子句更改为选择我需要的数据后,它在我的网格中工作并显示。
Logger log("mylog.txt");
log << "a string" << " " << 1 << " " << 6.2 << "\n";
log.logd(); // <- this prints and then clears the internal stream/list.