2015-09-24 7 views
0

В качестве примера я ниже существующей таблицы, которые я не могу изменить Контакты - [ID, имя, возраст] (Первичный ключ: ID)EntityFramework 6 One To One Mapping с общим ключом

Нет я хочу продлить функциональность, используя следующие расширения таблицы

Подробности - [ID, адрес, телефон] (первичный ключ: ID, ключ иностранных: ID)

Обратите внимание, что Details.Id является первичным ключом, а также внешний ключ (ссылающихся Контакты .Id)

My domai п модель

Contact 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
public int Age {get;set;} 
public Details Details {get;set;} 
} 

Details 
{ 
public int Id {get;set;} 
public string Address {get;set;} 
public string Phone {get;set;} 
} 

Как я пишу отображение для этого в рамках сущности 6

+0

Определите составной ключ. –

+0

Я новичок в EF, пожалуйста, продумайте пример кода – Gurpreet

ответ

1

Вы можете использовать composite key таким образом:

public class Details 
{ 
    [Key, ForeignKey("Contact")] 
    public int Id { get; set; } 
    public string Address { get; set; } 
    public string Phone { get; set; } 
    public Contact Contact { get; set; } 
} 

public class Contact 
{ 

    public int Id { get; set; } 
    public string Name { get; set; } 
    public int Age { get; set; } 
    public Details Details { get; set; } 
} 

Детали по ID является первичным ключом, а также иностранные ключ

+0

Вы явно добавляете свойство 'Contact' в' Details', пока он отсутствует в коде OP. Что делать, если это хочет OP (не хотите раскрывать навигационное свойство «Контакт»)? – Hopeless

+0

@Sirwan Прошу прощения, я не упоминал ранее, я пытаюсь сделать это с помощью свободного API, а не атрибута. я попробую его с атрибутами, но если вы знаете, что делать то же самое в свободно API, пожалуйста, дайте пример того, как указать внешний ключ с белым API. – Gurpreet

+0

@ Безнадежно, даже если у меня нет необходимости подробно раскрывать свойство навигации, я пробовал его и не работает. основная проблема, которую я получаю в любом случае, заключается в том, что она ищет «Contact_ID», а не «ID», только если я знал, как переопределить имя внешнего ключа – Gurpreet

 Смежные вопросы

  • Нет связанных вопросов^_^