У меня ужасная модель базы данных (в MySQL, хотя я не думаю, что это важно), что кто-то другой сконструировал так, что я застрял с ней, но хотите использовать с Entity Framework с ним так или иначе:Конфигурирование многих отношений «один-к-одному» с Entity Framework Code First и Fluent API
Database
Item
ASSET_ID* ASSET_NAME FIELDS_ID
1 Cat 1
2 Dog 2
3 Fish 3
ItemFields
ID* CUSTOMFIELD1ID CUSTOMFIELD2ID CUSTOMFIELD3ID
1 1001 1002 1003
2 1004 1005 1006
3 1007 1008 1009
поле
ID* STRINGVAL
1001 Meow Mix
1002 House
1003 5lbs
1004 Kibble
1005 Yard
1006 30lbs
1007 Fish Food
1008 Tank
1009 0.5 ounces
* указывает PK таблицы
Цель
В конечном счете, я пытаюсь установить отношения, поэтому я могу получить собственные данные, как это:
Item item = GetItem(1);
item.Food.ToString(); // Output: meow mix
item.Place.ToString(); // Output: house
item.Weight.ToString(); // Output: 5 lbs
... и т.п. но если честно, я бы согласиться на это в данный момент:
Item item = GetItem(1);
Item.ItemFields.CustomField3.Value // Output: 5 lbs
Item item = GetItem(2);
Item.ItemFields.CustomField2.Value // Output: Yard
Item item = GetItem(3);
Item.ItemFields.CustomField1.Value // Output: Fish Food
решение до сих пор
До сих пор я получил это:
One-To-One: Пункт - ItemFields
modelBuilder.Entity<Item>()
.HasRequired(x => x.ItemFields)
.WithRequiredPrincipal(y => y.Item);
B ut относительно отображения ItemFields.CustomField1ID в Field.ID?
Можно ли настроить отношения, подобные этому, с помощью EF-кода? Я довольно смущен, независимо от того, является ли это взаимно-однозначным или одно-ко-многим ... Я думаю, что на самом деле это много взаимно однозначных (если это имеет смысл).
Любые предложения?
Я хотел бы сделать это так. Проблема в том, что я застрял в существующей структуре db и не могу ее изменить. Вместо этого мне нужно смоделировать свой путь вокруг него ... – Mike