Entity Framework CTP4 - сопоставления внешнего ключа между схемами не работают должным образом. Ошибка? - PullRequest
1 голос
/ 30 июля 2010

У меня проблема с таблицами, которые имеют внешние ключи для других таблиц в другой схеме.

Например, TableA в SchemaA имеет внешний ключ для TableB в SchemaB.Когда CTP4 создает базу данных, вместо создания внешнего ключа от TA до TB, он создает третью таблицу «TableA_TableB» со столбцами TableA_ID и TableB_ID, как будто он считает, что это должно быть отношение многих ко многим.

Если я удаляю .ToTable .. из приведенного выше кода, он создает таблицы правильно.

Я пытался найти решение, но ничего не смог найти.Есть идеи, что я делаю не так, или это ошибка?

Ответы [ 2 ]

2 голосов
/ 06 августа 2010

Это оказалось ошибкой в ​​CTP4, код, который вы разместили, должен работать так, как вы ожидали. Обходной путь на данный момент заключается в явном отображении столбцов в таблице A:

builder.Entity<TableA>().MapSingleType(a => new { a.ID, tableBID = a.TableB.ID })
    .ToTable(new StoreTableName("TableA", "SchemaA"));

~ Роуэн

0 голосов
/ 30 июля 2010

Можете ли вы попробовать следующее:

builder.Entity<TableA>().HasKey(t => t.ID);
builder.Entity<TableA>().HasRequired(tA => tA.TableB);
builder.Entity<TableB>().HasKey(t => t.ID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...