Сначала я пытаюсь изменить код EF1 для кода EF4.1 в приложении, где невозможно изменить схему , поскольку она используется в репликации SQL Server. Схема ужасно бедна и во многих местах описывает отношения полностью задом наперед.
То, что я пытаюсь сделать, это создать отношения один к одному между двумя классами, но схема базы данных ошибочно поддерживает данные как один ко многим.
public class ClassA
{
public ClassB
{
get;
set;
}
}
К сожалению, таблица ClassB в базе данных имеет ссылку на ClassAId, а не на ClassA, имеющий ClassBId, как показано здесь:
CREATE TABLE [dbo].[ClassA]
[Id] [bigint] IDENTITY
CREATE TABLE [dbo].[ClassB]
[Id] [bigint] IDENTITY
[ClassAId] [bigint]
Как настроить файл сопоставления, который наследуется от EntityTypeConfiguration, чтобы принудительно установить это отношение.
public class ClassAMapping : EntityTypeConfiguration<ClassA>
{
public ClassA()
{
HasKey(f => f.Id);
// what happens here to force a one to one????
}
}