マップをセットアップする方法を混乱させるので、物事を保存し、すべてを参照する必要はありません。私のコードでnhibernateで保存するには?
public class TableAMapping : ClassMap<TableA>
{
public TableAMapping()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Name).Not.Nullable().NvarcharWithMaxSize(); ;
References(x => x.Country).Not.Nullable();
HasMany(x => x.Bonuses).Cascade.All();
HasManyToMany(x => x.AvailableFeatures).Cascade.All();
}
}
public class BonusMapping : ClassMap<Bonus>
{
public BonusMapping()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Amount).Not.Nullable().Precision(10).Scale(2);
References(x => x.BonusType).Not.Nullable();
References(x => x.TableA).Not.Nullable();
}
}
public class AvailableFeatureMapping : ClassMap<AvailableFeature>
{
public AvailableFeatureMapping()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Name).Not.Nullable().NvarcharWithMaxSize();
HasManyToMany(x => x.TableAs);
}
}
私はこの
TableA a = new TableA();
a.Name = "test";
a.Country = session.Load<Country>(1);
foreach(var b in bonuesVm)
{
Bonus bonus = new Bonus();
bonus.Amount = b.Amount;
bonus.BonusType = sesson.Load<BonusType>(b.bonusTypeId);
a.Bounus.add(bonus);
}
foreach(var avaliable in avaliableVm)
{
AvaliableFeatures features = new AvaliableFeatures();
features.Name = avaliable.Name;
a.AvaliableFeatures.Add(features);
}
session.Save(a);
transaction.Commit();
のようなものが、私は仕事の単位のようなものを取り除かないと私は、私はそれとして必要だとは思わないようVMであるものを示すわけではありません彼らはただの特性です。これはあなたに私が何をしているのかのアイデアを与えるはずです。
マッピングは常に私を混乱させます。だから、ボーナス対象にTableAのへの参照を置くために私ですたい
NHibernate.PropertyValueException was unhandled by user code
Message=not-null property references a null or transient value Framework.Domain.Bonus.TableA
Source=NHibernate
EntityName=.Framework.Domain.Bonus
PropertyName=TableA
私は私の現在の設定で
inverse
または
cascade.SaveUpdate()
を使用する必要がある場合、私はこのエラーを取得する私は確かに決して。これをやろうとしていませんか?それとも何があってもやらなければならないのですか?私はそれがそれからそれを理解することができるTableAオブジェクトにあるので、私はそれを飛び越しているだろう。すでにTableAに入っているボーナスにTableAを入れなければならないことはちょっと意味がないようです。
まあそれはボーナスにTableAを割り当てる必要はありません可能性がありますが、私はそれがないと思います。 – chobo2
ああ、まあ、まあ、まあまあ。 Nhibernateはオブジェクトリレーショナルマッパーです。モデルグラフと同期していないオブジェクトグラフを保存するのは奇妙です。 – Hace