У меня есть две таблицы, которые я хочу отобразить в один класс, который будет выглядеть так:
CUSTOMER_INFO_CLASS.cs
----------------------
Id (CUSTOMER table)
CustomerName (CUSTOMER table)
CustomerTypeDesc (CUSTOMER_TYPE table)
Я попытался сделать это с помощью соединения следующим образом:
Table("CUSTOMER");
Id(x => x.ID).Length(10).Column("CustomerId");
Map(x => x.CustomerName);
Join("CUSTOMER_TYPE", m =>
{
m.Optional();
m.Map(x => x.CustomerTypeDesc);
m.KeyColumn("CustomerType");
});
Проблема в том, что поле, с которым я пытаюсь связать две таблицы, не является первичным ключом ни в одной из них. (И по умолчанию объединение выполняется полем, определенным как ID)
Поэтому я обнаружил, что для таблицы CUSTOMER_TYPE я могу определить поле с помощью «KeyColumn».
Как я могу определить, что связанный столбец в таблице CUSTOMER будет CustomerTypeCode, а не CustomerId? (если я могу вообще)
В конце SQL-запрос должен выглядеть следующим образом:
Select Id, CustomerName, CustomerAddress, CustomerTypeDesc
From CUSTOMER t1
Left join CUSTOMER_TYPE t2
On t1.CustomerTypeCode = t2.CustomerType