EF Code Сначала используйте не-первичный ключ для создания отношения один-ко-многим - PullRequest
3 голосов
/ 06 июля 2011

У меня есть следующие две сущности:

public class User
{
    public int PKID { get; set; }
    public string Login { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }

    public virtual ICollection<AppAccess> AppAccessList { get; set; }
}

public class AppAccess
{
    public int PKID {get; set; }
    public string Login { get; set; }
    public string AppCode { get; set; }
}

Поле PKID является первичным ключом и столбцом идентификаторов каждой таблицы, но поле Login - это то, что связывает их в отношении «один ко многим», где пользователь является главной сущностью.

Как я могу настроить свойство навигации AppAccessList, используя свободный API, если это возможно, чтобы использовать поле «Логин» в качестве ключа отношения? Кстати, сущности основаны на существующей схеме, которая не может быть реорганизована в настоящее время.

1 Ответ

0 голосов
/ 09 ноября 2011

Я не верю, что это возможно из коробки, конечно, нет возможности добавить свойство навигации.Я попытался использовать новые мощные инструменты для обратного инжиниринга базы данных, и он просто проигнорировал отношения, и при этом я не мог создать это, используя код (аннотации или свободный интерфейс).

Вы можете создать отношения, используя raw sql наOnModelCreating метод, чтобы создать ограничение, но вам нужно будет использовать соединения вручную для перемещения между таблицами.

...