我有3個表,稱爲菜,成分和DishIngredient。流利的nhibernate複合類映射導致更新和主鍵問題
菜
標識
名稱
成分
標識
名稱
DishIngredient
標識
DishId
原料成分
金額
菜成分鏈接成分和菜,並增加額外的細節,如數額。
public DishMap()
{
Id(x => x.Id);
Map(x => x.Title);
HasMany(x => x.Ingredients).Fetch.Join().Cascade.All();
}
public IngredientMap()
{
Table("DishIngredient");
Id(x => x.Id);
Map(x => x.Amount);
Join("Ingredient", m =>
{
m.Map(x => x.Name);
m.KeyColumn("Id");
});
}
這適用於獲取值從數據庫中,但是當涉及到試圖保存或更新我得到的消息:
「NHibernate.Exceptions.GenericADOException:無法插入: [SQL :INSERT INTO Ingredient(Name,Id)VALUES(?,?)] ----> System.Data.SqlClient.SqlException:當IDENTITY_INSERT設置爲OFF時,無法在表'Ingredient'中爲標識列插入顯式值。
所以它看起來像nhibernate正試圖插入一個值到成分列的id列,這是一個自動遞增的主鍵....所以顯然它失敗了。
任何人都可以幫我解決這個問題嗎?