Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 亚硝酸铵;仅使用单向映射持久化子对象_C#_.net_Nhibernate - Fatal编程技术网

C# 亚硝酸铵;仅使用单向映射持久化子对象

C# 亚硝酸铵;仅使用单向映射持久化子对象,c#,.net,nhibernate,C#,.net,Nhibernate,使用单向映射和级联。所有这些都在一个集合上,通过设置有效的FK然后执行保存或保存或更新,是否可以仅保存一个子项 如果我创建了一个新订单,设置了一个有效的Account\u id并执行了SaveOrUpdate,则Account\u id在数据库中设置为NULL,而实体仍然具有先前设置的Account\u id 为什么??我是否可以修改SaveOrUpdate方法来实现这一点 public class Account { public int Id { get; set; } pu

使用单向映射和级联。所有这些都在一个集合上,通过设置有效的FK然后执行保存或保存或更新,是否可以仅保存一个子项

如果我创建了一个新订单,设置了一个有效的Account\u id并执行了SaveOrUpdate,则Account\u id在数据库中设置为NULL,而实体仍然具有先前设置的Account\u id

为什么??我是否可以修改SaveOrUpdate方法来实现这一点

public class Account
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IList<Order> Orders { get; set; }
    //...
}

public class Order
{
   public int Id { get; set; }
   public int Account__id { get; set; }
   public decimal Price { get; set; }
   //...
}

看起来您没有在映射类中映射
Account\uu id
列。试着把

Map(x => x.Account_id)
到您的OrderMap类

    public void SaveOrUpdate(T instance)
    {
        using (ISession session = FnhManager.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                lock (instance)
                {
                    session.SaveOrUpdate(instance);
                    transaction.Commit();
                }
            }
        }
    }
Map(x => x.Account_id)