EF Core ForeignKey-подобные отношения - PullRequest
0 голосов
/ 14 февраля 2019

Рассмотрим два класса:

public class EntA
{
    public Guid Id { get; set; }
    [ForeignKey("EntityId")]
    public ICollection<TranslationValue> Translations { get; set; }
}
public class EntB
{
    public Guid Id { get; set; }
    [ForeignKey("EntityId")]
    public ICollection<TranslationValue> Translations { get; set; }
}

, а затем у нас есть класс TranslationValue:

public class TranslationValue : IEntity
{
    public Guid Id { get; set; }
    public Guid EntityId { get; set; }
    public string Value { get; set; }
}

Все работает нормально, кроме одного: я не могу иметь внешний ключ в качестве записей вTranslationValue.EntityId будет ссылаться как на EntA, так и на EntB.

Поэтому вопрос заключается в следующем: как определить отношение точно так же, как описано выше, без фактического создания внешнего ключа.

Обходной путьВ настоящее время я использую то, что я создаю миграцию, а затем удаляю часть, отвечающую за создание фактического внешнего ключа.

1 Ответ

0 голосов
/ 14 февраля 2019

Таким образом, вопрос заключается в следующем: как определить отношение точно так же, как описано выше, без фактического создания внешнего ключа.

Это невозможно, поскольку один внешний ключ будетсопоставить две разные таблицы?Ваша TranslationValue модель должна быть следующей:

public class TranslationValue : IEntity
{
    public Guid Id { get; set; }

    public Guid EntAId { get; set; }
    public Guid EntBId { get; set; }

    public string Value { get; set; }

    public EntA EntA {get; set;}
    public EntB EntB {get; set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...