弄这个搞了好久搞不出来,请帮忙看看:
<class name="Bom">
<id name="Id">
<generator class="native"/>
</id>
<bag name="ItemMasterList"
table="ItemMaster_Bom">
<key column="BomId"/>
<many-to-many class="ItemMaster" column="ItemMasterId"/>
</bag>
</class> <class name="ItemMaster">
<id name="Id">
<generator class="native" />
</id>
<bag name="BomList"
table="ItemMaster_Bom"
inverse="true">
<key column="ItemMasterId"/>
<many-to-many class="Bom" column="BomId"/>
</bag>
</class>public void SaveOneLevelsBomTest()
{
CanGenSchema gen = new CanGenSchema();
gen.CanGenSchemaTest(); //重新建数据表 ItemMaster item = CreateItemMasterWithoutItemGroup(); // 测试物料实例
Bom bom = CreateEmptyBom(); // 测试 BOM 实例,还没关联物料 bom.AddItem(item); ItemMasterHelper.Save(item);
BomHelper.Save(bom);
}
运行后,BOM 和 ItemMaster 都能保存,但中间的关联表 ItemMaster_Bom 空白没有插入任何值。请问什么原因呢?
<class name="Bom">
<id name="Id">
<generator class="native"/>
</id>
<bag name="ItemMasterList"
table="ItemMaster_Bom">
<key column="BomId"/>
<many-to-many class="ItemMaster" column="ItemMasterId"/>
</bag>
</class> <class name="ItemMaster">
<id name="Id">
<generator class="native" />
</id>
<bag name="BomList"
table="ItemMaster_Bom"
inverse="true">
<key column="ItemMasterId"/>
<many-to-many class="Bom" column="BomId"/>
</bag>
</class>public void SaveOneLevelsBomTest()
{
CanGenSchema gen = new CanGenSchema();
gen.CanGenSchemaTest(); //重新建数据表 ItemMaster item = CreateItemMasterWithoutItemGroup(); // 测试物料实例
Bom bom = CreateEmptyBom(); // 测试 BOM 实例,还没关联物料 bom.AddItem(item); ItemMasterHelper.Save(item);
BomHelper.Save(bom);
}
运行后,BOM 和 ItemMaster 都能保存,但中间的关联表 ItemMaster_Bom 空白没有插入任何值。请问什么原因呢?
解决方案 »
- 如何自动引发网页上的选择按钮?
- VS2005中"找不到文件binRelease\工程名.exe"
- access操作数据库求助
- xml序列化问题
- 定义了一个最简单的派生类对象,什么字段都没有给值,想从基类的一个对象中复制字段。请问派生类对象如何复制基类对象的字段,是重载等号(我不会弄),还是逐个属性复制(这又太麻烦)?
- 当 remoting 服务器在外网时,客户端向服务器传输代理对象时会超时`并报错!?
- 在VS2005 WinForm中,用户自定义控件的属性(返回一个自定义类<可序列化>),怎样在拖动到新窗体中时,不自动向窗体的资源文件中添加资源?
- 在.NET里能调用VC写的Dll吗?
- 开发一个C/S 方式的网上办公管理软件
- MVVM DelegateCommand<T>的一个不理解的地方
- wpf-如何获得NavigationWindows中Page的键盘事件
- C#-Winform listview中始终有一项选中
http://www.cnblogs.com/jillzhang/archive/2007/03/23/685750.html
很久以前刚学,那个例子我看过,因为那篇的命名混乱我最开始也不明白(他把中间表的User Id 命名为 Id,与 User 本身的主键 Id 相同,当时初学不知道嘛,多多得罪),后来再另外一些博文看完才懂一点,才能正确生成数据表。但测试保存还是不行。我标识 ItemMaster 内的 BOM 相关 bag 为 inverse=true,关联关系是由 BOM 负责。Bom 结构内有 AddItem() 方法负责把相方的 IList 都加上。除了 lazy 以外其他部分跟你给的链接几乎相同。public virtual void AddItem(ItemMaster item)
{
item.BomList.Add(this);
ItemMasterList.Add(item);
}我试过把 cascade=save-update 加回去,依然没效果。求教。