Мне нужно определить мои 3 класса следующим образом:
public class Table1
{
public Guid Table1CoreId {get;set;}
public string Name {get;set;}
public Table2 Table2 {get;set;}
public Table3 Table3 {get;set;}
}
public class Table2
{
Guid Table1CoreId {get;set;}
}
public class Table3
{
Guid Table1CoreId {get;set;}
}
Как вы можете видеть, я определил Table2 и Table3 как свойства в Table1.
Я пытался использоватьEF свободно API, чтобы определить, как они должны быть созданы, но я не получаю желаемый результат.Мне нужно, чтобы моя таблица была определена следующим образом:
Table1:
Table2:
- Table1CoreId (PK, FK)
- Id (PK)
Table3:
- Table1CoreId (PK, FK)
- Id (PK)
Table2 имеет отношение 1 к 1 с Table1, в то время как Table3 имеет отношение 1 к M.Обе записи в таблице 2 и таблице 3 являются необязательными.
Я пробовал следующее: в используемых классах определения таблиц 2 и 3 я использовал следующее:
this.HasRequired(t => t.Table1)
.WithMany()
.HasForeignKey(t => t.Table1CoreId)
.WillCascadeOnDelete(false);
Но когда ясоздайте миграцию и обновите мою базу данных, она создает дополнительные столбцы в таблице 1:
Table2_Table1CoreId
Table2_Id
Table3_Table1CoreId
Table3_Id
Все первичные ключи и внешний ключ создаются в различных таблицах, насколько я вижу, но я просто не хочуэти дополнительные столбцы должны быть созданы в таблице 1.
Надеюсь, это имеет смысл, и кто-то может указать мне правильное направление, как решить эту проблему.