У меня есть 2 объекта, и я хочу соединить их с помощью свойства навигации. Но в базе данных нет ключа подделки, а столбцы имеют другое имя.
Поэтому я хочу сделать это, используя свободный API.
Это пример данных:
CAR
CarId = 1
Name = "Test"
DictId = "AO"
LOOKUP
LookupCategory: "DictId"
LookupId = "AO"
Details = "SomeDetails"
Записи должны быть подключены через Car.DictId = Lookup.LookupId
.
Обратите внимание, что в моей таблице LOOKUP
есть столбец LookupCategory
, равный DictId
(имя таблицы из CAR
), тем не менее я думаю, что это невозможно учесть в моем свободном API.
Как я уже сказал, я пытаюсь просто соединить CAR
и LOOKUP
через DictId = LookupId
. Тогда я отфильтрую это по LINQ. var lookupDetails = Car.Lookup.Where(l => l.LookupCategory == "DictId").SingleOrDefault().Details;
Это то, что у меня есть, но оно не работает:
HasMany(e => e.Lookup).WithMany(e => e.Car)
.Map(x =>
{
x.MapLeftKey("DictId");
x.MapRightKey("LookupId");
});