在阅读类似问题后,我仍然无法克服这个问题。有趣的是,我解耦并制作了一个单独的项目,并且在那里工作。
我有两个实体JobAnnouncement和Skill,他们处于多对多的关系中。只要我没有在工作公告中添加任何技能,我就可以插入。
让我输入代码:
public class JobAnnouncement
{
public int Id { get; set; }
public DateTime DateAdded { get; set; }
//other properties
public virtual ICollection<Skill> Skills { get; set; }
}
public class Skill
{
//other properties
public virtual ICollection<JobAnnouncement> JobAnnouncements { get; set; }
}
插入代码是(尝试各种方式,包括愚蠢的方式):
public void AddJobAnnouncement(JobAnnouncement jobAnnouncemnet)
{
_jobAnnouncement.Content = jobAnnouncemnet.Content; //ok
_jobAnnouncement.CompanyId = jobAnnouncemnet.CompanyId; //ok
_jobAnnouncement.Skills = jobAnnouncemnet.Skills; //fails
db.JobAnnouncements.Add(_jobAnnouncement); //throws exception
db.SaveChanges();
}
仅仅为了您的信息,我确实覆盖了SaveChanges()方法(这就是我离开DateAdded的原因。我不认为导致错误,我试着删除它并且它仍然没有&#39工作。)
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries().Where(entry => entry.Entity.GetType().GetProperty("DateAdded") != null))
{
if (entry.State == EntityState.Added)
{
entry.Property("DateAdded").CurrentValue = DateTime.Now;
}
if (entry.State == EntityState.Modified)
{
entry.Property("DateAdded").IsModified = false;
}
}
}
}
另外,我正在使用Niject,在SO上找到的指令没有帮助: kernel.Bind()向()InRequestScope();
我试图改变实体的生命周期。实体框架的版本是6.1.3,我首先使用代码。
我知道很多代码,但希望我具体。我只是没有看到这个问题。
有什么建议吗?
提前致谢, 利维乌
答案 0 :(得分:2)
我找到了一个解决方案......不一定是解决方案。 AddJobAnnouncement应如下所示:
double i, max = pow(2, 32);
char *temp;
for (i = 0; i < max; i++)
{
temp = (char *) i;
//some code involving *temp
}
现在我甚至不知道为什么会这样。