我有一个情侣表,例如:功能NHibernate - 映射一个属性栏上的连接表
- 产品{ID,名称,ManufacturerId,...}
- 制造商{ Id,Name,...}
我希望能够在我的Product对象中包含ManufacturerName(而不必在我只需要名称时加载整个Manufacturer行)。我的产品地图看起来像...
Table("Product");
Id(x => x.Id, "Id");
Map(x => x.ProductName, "ProductName");
Map(x => x.ManufacturerId, "ManufacturerId");
References(x => x.Manufacturer, "ManufacturerId");
我需要添加什么来填充我的Product对象的ManufacturerName属性?我相信我需要进行某种Join()调用,但我无法弄清楚如何使用所有相关参数编写它。它需要将当前表(产品)加入到制造商表中,在Product.ManufacturerId = Manufacturer.Id上,并抓住Manufacturer.Name列,在对象上填充ManufacturerName属性。
这看起来像是一个很好的解决方案,除了DB是一个不支持select参数内的子查询的oracle版本。 (呃)虽然 –
非常感谢您接受这个答案,因为它可能适用于后来寻找答案的99%的人。可悲的是,我在使用8年前的Oracle数据库的1%中,这不起作用。 –
啊..是的,我在Oracle 9中测试,所以这可能是为什么它在那里工作。那么,你仍然可以使用一个辅助sql视图并将其映射到一个新的实体,该实体只包含一列的子集,然后使用它来代替常规产品,但我想它主要取决于场景。 –