在一个查询中保存带子项的父项(子项具有父项的空值引用)

时间:2016-10-10 12:41:34

标签: c# nhibernate fluent-nhibernate mapping

美好的一天。我不能在同一个查询中保存带有子项的父项。但是孩子对父母有空参考... 我的数据库中的父表是“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();
    }

孩子 cart_additive cart_additive 的模型是 CartAdditive 的类型,并且对 food_in_the_cart 的模型有参考,同时映射此引用是:

        References(x => x.Cart)
            .Column("fk_id_cart")                                      
            .Not.LazyLoad();

这两个表之间的类型关系是一对多: food_in_the_cart 有很多 cart_additive 。似乎我尝试了一切为了保存带子女的父母的查询...但是孩子的父母仍然有空值。如何在子项中使父引用不为空?

1 个答案:

答案 0 :(得分:0)

我从 FoodInTheCartMap 中删除了很多插入(),并在那里添加了 AsBug(),也允许fk为<的值为空值< cart_additives 中的strong> food_in_the_cart 以及此表格模型中名为Cart的参考。一切都是这样的。耶。