我有一个数据库架构:
产品
- ID
- 产品名称
- 描述
- 店铺品牌
产品变化
- 变体 ID
- 产品编号
- 尺寸
- 店铺品牌
- 价格
可以预见,类看起来有点像这样:
public class Product
{
public virtual int ID { get; set; }
public virtual string ProductName { get; set; }
public virtual string Description { get; set; }
public virtual string StoreBrand { get; set; }
public virtual IEnumerable<ProductVariation> Variations { get; set; }
}
public class ProductVariation
{
public virtual int VariationID { get; set; }
public virtual int ProductID { get; set; }
public virtual Product Product {get; set;}
public virtual string Size { get; set; }
public virtual double Price { get; set; }
}
我有这样的映射类:
public class ProductMapper : ClassMap<Product>
{
public ProductMapper()
{
Id(x => x.ID);
Map(x => x.ProductName);
Map(x => x.Description);
Map(x => x.StoreBrand);
HasMany(x => x.Variations)
.KeyColumn("ProductID");
}
}
public class ProductVariationMapper : ClassMap<ProductVariation>
{
public ProductVariation()
{
Id(x => x.ID);
Map(x => x.ProductID);
Map(x => x.Size);
Map(x => x.Price);
References(x => x.Product)
.Column("ProductID");
}
}
这是一种工作...
但是,我需要做的是将 Product.Brands 与 ProductVariation.Brands 联系在一起......(反之亦然)
因此查询产品,返回该品牌的 ProductVariations 列表...(注意,ProductVariation 在类中没有属性,但它具有用于映射的列)
ProductVariation.ID 不是唯一的。关键是 ProductVariation.ID 和 ProductVariation.Brand(在数据库上)