У меня в настоящее время есть следующие отношения: ProductUom -> ProductImage
Они оба имеют одинаковые первичные ключи: PROD_ID
и UOM_TYPE
У меня они отображаются так:
public ProductUomMap()
{
Table("PROD_UOM");
CompositeId()
.KeyReference(x => x.Product, "PROD_ID")
.KeyProperty(x => x.UomType, "UOM_TYPE");
References(x => x.Image)
.Columns(new string[] { "PROD_ID", "UOM_TYPE" })
.Not.Update()
.Not.Insert()
.NotFound.Ignore()
.Cascade.All();
}
public ProductImageMap()
{
Table("PROD_UOM_IMAGE");
CompositeId()
.KeyReference(x => x.ProductUom, new string[] {"PROD_ID", "UOM_TYPE"});
Map(x => x.Image, "PROD_IMAGE").Length(2147483647);
}
Всякий раз, когда я создаю объект ProductUom
с ProductImage
, он сначала пытается вставить ProductImage
, что приводит к нарушению внешнего ключа . Клянусь, это когда-то работало с отображением, которое у меня есть, но сейчас это не так.
Мне нужно, чтобы ProductImage
был Reference
(много-к-одному), потому что отношения здесь необязательны, и я хочу иметь возможность лениво загружать изображения продуктов. Вставки работают правильно, если я использую отображение HasOne
(один-к-одному), но при этом я не могу загрузить лениво, и запрос ProductUom
, кажется, вызывает проблемы.
Есть что-то, что я здесь упускаю? Как можно изменить это отображение, чтобы получить то, что я хочу?