У меня есть следующие таблицы базы данных (для ясности они сокращены):
CREATE TABLE [dbo].[prod_uom](
[prod_id] [dbo].[uid] NOT NULL, --Primary key
[uom_type] [numeric](9, 0) NOT NULL, --Primary Key
)
CREATE TABLE [dbo].[order_line](
[order_line_id] [dbo].[uid] NOT NULL, --Primary key
[prod_id] [dbo].[uid] NOT NULL, --Foreign key
[uom_type_requested] [numeric](9, 0) NOT NULL, --Foreign key
[uom_specified] [numeric](9, 0) NOT NULL --Foreign key
)
Сущность, с которой у меня проблемы, выглядит так (Сокращенно):
public class OrderLine
{
public virtual Guid OrderLineId { get; private set; }
public virtual ProductUom UomRequested { get; set; }
public virtual ProductUom UomSpecified { get; set; }
}
public class ProductUom
{
public virtual Guid ProductId { get; private set; }
public virtual decimal UomType { get; set; }
}
В основном у меня есть 2 ссылки на таблицу PROD_UOM внутри моего класса ORDER_LINE . Моя первая попытка картирования это была следующая:
public OrderLineMap()
{
Table("ORDER_LINE");
Id(x => x.OrderLineId, "ORDER_LINE_ID");
References(x => x.UomSpecified)
.Columns(new string[] { "PROD_ID", "UOM_SPECIFIED" });
References(x => x.UomRequested)
.Columns(new string[] { "PROD_ID", "UOM_TYPE_REQUESTED" });
}
Это отображение получает страшную ошибку (на PROD_ID ссылаются дважды):
System.IndexOutOfRangeException: Invalid index 17 for this SqlParameterCollection with Count=17.
Есть ли простой способ отобразить эти отношения?