我首先使用實體框架代碼和dotConnect for MySQL。實體框架「空插入語句」
我收到以下錯誤,當我打電話context.SaveChanges()
添加對象上下文後:
保存DbUpdateException:
在更新條目中出現了錯誤。詳情請參閱內部例外。內部異常:
UpdateException:更新條目時發生錯誤。詳情請參閱內部例外。內部異常: EntityCommandCompilationException:準備命令定義時發生錯誤。詳情請參閱內部異常 「}
內部異常:
NotSupportedException異常:{」。空INSERT語句「}
DbContext
時後,我增加了一個項目到
DbContext
奇怪的是,當我添加其所有內容時,它的添加成功,但是當我添加對象本身時,我收到此錯誤。
這行代碼失敗:
context.TournamentTables.Add(tournamentTable);
雖然這一個完美的作品:
tournamentTable.Columns.ForEach(column =>
{
column.Cells.ForEach((cell) => context.TournamentCells.Add(cell));
context.TournamentColumns.Add(column);
});
這裏是我嘗試添加對象:
public class TournamentTable //: IEnumerable<TournamentColumn>
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int? Id { get; set; }
public List<TournamentColumn> Columns { get; set; }
public TournamentTable()
{
Columns = new List<TournamentColumn>();
}
public void AddColumn(int index, TournamentColumn column)
{
Columns.Insert(index, column);
}
public void RemoveColumn(int index)
{
Columns.RemoveAt(index);
}
/// <summary>
/// Add a tournament cell at the top of the column.
/// </summary>
/// <param name="column"></param>
public void AddColumn(TournamentColumn column)
{
Columns.Add(column);
}
/// <summary>
/// Returns the tournament column at the index specified.
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
[NotMapped]
public TournamentColumn this[int index]
{
get { return Columns[index]; }
}
/// <summary>
/// Returns the tournament cell at the index specified.
/// </summary>
/// <param name="columnIndex"></param>
/// <param name="cellIndex"></param>
/// <returns></returns>
[NotMapped]
public TournamentCell this[int columnIndex, int cellIndex]
{
get { return Columns[columnIndex][cellIndex]; }
set
{
Columns[columnIndex][cellIndex] = value;
}
}
}
注意,比賽表格ID 0默認情況下,如果Id被聲明爲「int?」而不是null。我已經嘗試了兩種情況,並且還自己設置了ID,但仍然失敗。