流利的Nhibernate不会保存

时间:2012-08-08 07:05:43

标签: nhibernate fluent-nhibernate nhibernate-mapping fluent fluent-nhibernate-mapping

我有以下课程:

public class PhoneModel
{
     public virtual ModelIdentifier SupportModels
}
public class ModelIdentifier
{
     public virtual string Name
     public virtual IList<string> Values
}

这是我映射的方式:

      mapping.Component(x => x.SuppoertedModel, y =>
      {
        y.Map(x => x.Name, "FAMILY_ID");
        y.HasMany(x => x.Values).Element("VALUE").Table("SUPPORTEDMODULS")
      }

创建了2个表:

  1. PhoneModel     列“FAMILY_ID”
  2. SUPPORTEDMODELS     列“VALUE”,“PHONE_MODEL_ID”
  3. 问题在于,当我添加值时,它不会将其保存到SUPPORTEDMODELS表:

    var pm = new PhoneModel();
    pm.SupportedModels.Name = "11"
    pm.SupportedModels.Values.Add("34");
    

1 个答案:

答案 0 :(得分:0)

  • 您遗失HasMany(x => x.Values).Cascade.AllDeleteOrphan()
  • 可能在测试代码中缺少session.Flush()或transaction.Commit()

btw:如果Values的顺序不重要,那么将其更改为ICollection<string>HasMany().AsSet(),因为这样可以让NH优化某些内容,代码也不能依赖于使用sql时不可靠。