// Create the scoresheet
Scoresheet scoresheet = new Scoresheet();
scoresheet.tsakID = task.ID;
// Query Items to retrieve a list of tasks. Then create a scoresheet
// for each item retrieved and bind them together as foreign keys.
var Items = (from c in db.Items
where c.ID == task.ID
select c).ToList();
// Save scoresheet item to db
scoresheet.ScoresheetItems = new List<ScoresheetItem>();
System.Diagnostics.Debug.WriteLine(scoresheet.ScoresheetID);
for (int i = 0; i < Items.Count(); i++)
{
ScoresheetItem scoresheetItem = new ScoresheetItem();
scoresheetItem.ScoresheetID = scoresheet.ScoresheetID;
scoresheet.ScoresheetItems.Add(scoresheetItem);
}
db.Scoresheets.Add(scoresheet);
db.SaveChanges();
的错误是在哪里我做scoresheetItem.ScoresheetID = scorehseet.ScoresheetID
这是给我的OLE无法将NULL值插入列错误,我不知道一个办法解决这个
问题该行是记录表。 ScoresheetID在创建之前为空。当它在数据库上创建时,该值将被指定为自动递增值。
如何解决此问题,以便scoresheet.ScoresheetID不为空,以便我可以将其分配给scoresheetItem?
这里是记录表型号:
public class Scoresheet
{
public int ScoresheetID { get; set; }
public virtual ICollection<ScoresheetItem> ScoresheetItems { get; set; }
}
public class ScoresheetItem
{
public int ScoresheetItemID { get; set; }
public int ScoresheetItemScore { get; set; }
public Nullable<int> ScoresheetID { get; set; }
}
什么?你是什么意思? –
如果数据库中的'ScoresheetID'列被声明为整数,主键,自动增量,非空值,则不应该发生这种情况。 –
Guids:您可以在客户端,服务器或任何地方生成ID。他们保证是独一无二的,所以如果问题你没有这些种类。 –