После бесчисленных часов мне, наконец, удалось получить плавные настройки API, чтобы сопоставить нашу сложную существующую базу данных SQL с классами POCO. Есть одна вещь, с которой я не работаю, и мне интересно, может ли она не поддерживаться.
Сила класса имеет:
List<Transaction> PowerTransactions;
Transaction LastPowerTransaction;
int PowerTransactionId;
Транзакции - это один ко многим, где в таблице транзакций есть FK, указывающий на Power.PowerID, который отлично работает.
У Power есть столбцы PowerTransactionId и FK, указывающие на TransactionId в таблице транзакций.
Я установил свободный API:
Power имеет необязательную последнюю транзакцию с требуемой мощностью
HasOptional(x => x.LastPowerTransaction).WithRequired(x => x.PowerLastPowerTransaction).Map(x => x.MapKey("PowerTransactionId"));
Powers TransactionId равен 123, а PowerID равен 1, при выборе Power.LastPowertransaction я получаю транзакцию с идентификатором 1, а не 123.
Поскольку многие ко многим выполняют выбор .. из PowerTransaction, где PowerID=1, One to One делает то же самое вместо выбора .. из PowerTransaction, где PowerID=123.
Что мне здесь не хватает?