Fluent API — Использовать ключ-кандидат в качестве внешнего ключа

#c# #asp.net-mvc #entity-framework #ef-fluent-api

#c# #asp.net-mvc #entity-framework #ef-fluent-api

Вопрос:

У меня есть следующие две сущности. Сотрудник и адрес.
У сотрудника может быть один или несколько адресов.
Что мне нужно, так это установить их взаимосвязь с помощью Fluent API. Но я не хочу, чтобы EmployeeID (который является первичным ключом в Employee) использовался в качестве внешнего ключа для Адреса. Вместо этого я хочу использовать Guid от Employee в качестве внешнего ключа в адресе.

В двух словах, я хочу

Сотрудник 1: N Адрес, но на основании

Guid от Employee -> Guid в адресе

 public class Employee
{
    public int EmployeeId;
    public Guid Guid;
    .
    .
    .
    public ICollection<Address> Addresses;
}

public class Address
{
    public int AddressId
    public Guid Guid; // Guid from Employee 
    .
    .
}
  

Пожалуйста, помогите мне, как установить эту взаимосвязь. Это
1. У одного сотрудника может быть много адресов.
2. Сотрудник.Guid будет внешним ключом в Адресе.Guid

Комментарии:

1. Нет. Я хочу использовать AddressID в качестве ключа.

2. Это невозможно.

3. Вы должны создать EmployeeID в адресной таблице, тогда только вы можете создать одно отношение 2 many entityframeworktutorial.net/code-first /…

4. Вам это вообще не нужно: public Guid Guid; // Guid from Employee . Зачем вам это? Вы можете дешево запросить то, что Employee задано Address , потому что Address вводится с помощью AddressId … кроме того, два Employee могут иметь один и тот же адрес, хотя и редко, поэтому не храните избыточные данные.