在一个查询中用 children 保存 parent(children 对 parent 有空值引用)
Save parent with children in one query ( children have null value reference for parent)
美好的一天。我无法在同一查询中使用 children 保存 parent。但是 children 对 parent 有空引用...
Parent 在我的数据库中是 table "food_in_the_cart" 并且它的模型在这里:
public class FoodInTheCartModel
{
public virtual int ID { get; set; }
public virtual ClientModel Client { get; set; }
public virtual EstablishmentModel Stocked { get; set; }
public virtual ProductModel DesirableProduct { get; set; }
public virtual IList<CartAdditiveModel> Additives { get; set; } //children
public virtual void AddAdditivesToTheCart(CartAdditiveModel a)
{
a.Cart = this;
Additives.Add(a);
}
public FoodInTheCartModel()
{
this.Additives = new List<CartAdditiveModel>();
}
}
映射也:
public FoodInTheCartMap()
{
Table("food_in_the_cart");
Id(x => x.ID)
.Column("id")
.GeneratedBy.Native("food_in_the_cart_id_seq");
References(x => x.Client)
.Column("fk_id_client")
.Not.Nullable()
.Not.LazyLoad();
References(x => x.DesirableProduct)
.Column("fk_id_product")
.Not.Nullable()
.Not.LazyLoad();
References(x => x.Stocked)
.Column("fk_id_stock")
.Not.Nullable()
.Not.LazyLoad();
HasMany(x => x.Additives)
.Table("cart_additive")
.Cascade.SaveUpdate()
.Cascade.All()
.Inverse()
.Not.LazyLoad();
}
而child是cart_additive。 cart_additive 的模型是 CartAdditive 的类型并且对 food_in_the_cart[=31 的模型有参考=],也映射这个引用是:
References(x => x.Cart)
.Column("fk_id_cart")
.Not.LazyLoad();
这两个table之间的类型关系是一对多的:food_in_the_cart有很多cart_additive。似乎我尝试了所有使用 children 保存对 parent 的查询...但是 children 仍然具有 parent 的空值。如何使 child 中的 parent 引用不为空?
我从 FoodInTheCartMap 中删除了 Insert() 并添加了 AsBug() 在那里,cart_additives 中的 food_in_the_cart 的 fk 也允许空值,至于此模型中称为 Cart 的参考table。一切都是这样。耶。
美好的一天。我无法在同一查询中使用 children 保存 parent。但是 children 对 parent 有空引用... Parent 在我的数据库中是 table "food_in_the_cart" 并且它的模型在这里:
public class FoodInTheCartModel
{
public virtual int ID { get; set; }
public virtual ClientModel Client { get; set; }
public virtual EstablishmentModel Stocked { get; set; }
public virtual ProductModel DesirableProduct { get; set; }
public virtual IList<CartAdditiveModel> Additives { get; set; } //children
public virtual void AddAdditivesToTheCart(CartAdditiveModel a)
{
a.Cart = this;
Additives.Add(a);
}
public FoodInTheCartModel()
{
this.Additives = new List<CartAdditiveModel>();
}
}
映射也:
public FoodInTheCartMap()
{
Table("food_in_the_cart");
Id(x => x.ID)
.Column("id")
.GeneratedBy.Native("food_in_the_cart_id_seq");
References(x => x.Client)
.Column("fk_id_client")
.Not.Nullable()
.Not.LazyLoad();
References(x => x.DesirableProduct)
.Column("fk_id_product")
.Not.Nullable()
.Not.LazyLoad();
References(x => x.Stocked)
.Column("fk_id_stock")
.Not.Nullable()
.Not.LazyLoad();
HasMany(x => x.Additives)
.Table("cart_additive")
.Cascade.SaveUpdate()
.Cascade.All()
.Inverse()
.Not.LazyLoad();
}
而child是cart_additive。 cart_additive 的模型是 CartAdditive 的类型并且对 food_in_the_cart[=31 的模型有参考=],也映射这个引用是:
References(x => x.Cart)
.Column("fk_id_cart")
.Not.LazyLoad();
这两个table之间的类型关系是一对多的:food_in_the_cart有很多cart_additive。似乎我尝试了所有使用 children 保存对 parent 的查询...但是 children 仍然具有 parent 的空值。如何使 child 中的 parent 引用不为空?
我从 FoodInTheCartMap 中删除了 Insert() 并添加了 AsBug() 在那里,cart_additives 中的 food_in_the_cart 的 fk 也允许空值,至于此模型中称为 Cart 的参考table。一切都是这样。耶。