pan*_*ang 16 mapping many-to-many fluent-nhibernate
我想用流利的Nhibernate映射这样的东西,但我不知道如何映射库存表
这是我的表格:
产品(身份证,姓名,......)
仓库(Id,Name,...)
库存(Product_id,Warehouse_id,StockInHand)
我已经像下面那样映射了产品和仓库
公共产品地图(){
Run Code Online (Sandbox Code Playgroud)Id(x => x.Id); Map(x => x.Name); HasManyToMany(x => x.StoresStockedIn) .Cascade.All() .Inverse() .Table("Inventory"); }public WarehouseMap()
Run Code Online (Sandbox Code Playgroud){ Id(x => x.Id); Map(x => x.Name); HasManyToMany(x => x.Products) .Cascade.All() .Table("Inventory"); }
我面临的问题是如何映射StockInHand(库存模型应如何映射?).
或者有其他方式来模拟这种情况吗?
我已经阅读了一些现有的问题,但尚未清楚地了解该怎么做.
谢谢
Pau*_*tum 21
就NHibernate而言,你的关系不是多对多的.真正的多对多没有其他列,例如您的示例中的StockInHand.
您必须将此映射为两个一对多关系,并将Inventory映射为实体.
像(我跳过其他属性)的东西:
public class Product
{
public List<Inventory> Inventory { get; set; }
}
public class Warehouse
{
public List<Inventory> Inventory { get; set; }
}
public class Inventory
{
public Product Product { get; set; }
public Warehouse Warehouse { get; set; }
public bool StockInHand { get; set; }
}
public ProductMap() {
Id(x => x.Id);
Map(x => x.Name);
HasMany(x => x.Inventory)
.Cascade.All()
.Inverse()
.Table("Inventory");
}
public WarehouseMap()
{
Id(x => x.Id);
Map(x => x.Name);
HasMany(x => x.Inventory)
.Cascade.All()
.Inverse()
.Table("Inventory");
}
public InventoryMap()
{
CompositeId()
.KeyReference(x => x.Product, "Product_id")
.KeyReference(x => x.Warehouse, "Warehouse_id")
Map(x => x.StockInHand);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7952 次 |
| 最近记录: |