@Exxplozer

Почему Entity Framework создает новые ключи?

Всем привет.
Создал БД в вижуалке и (db.mdf), создал таблицы связи и даже заполнил БД тестовыми записями.
Теперь необходимо подключить Entity Framework. Создаю модель (ADO.NET Entity Data Model), генерирую по своей БД. Все нормально проходит.
После запуска приложения создает аналогичную мне БД в SQL Server, сохраняет ее в документы пользователя на компьютере. Но вот что странно в каждой таблице где были внешние ключи создались еще одни и связи привязаны именно к ним.
К примеру
Было:
[Id]            INT           IDENTITY (1, 1) NOT NULL,
    [FirstName]     NVARCHAR (50) NOT NULL,
    [SecondName]    NVARCHAR (50) NOT NULL,
    [PositionId]    INT          NOT NULL,
    [GroupId]       INT          NOT NULL,
    CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_Employees_Group] FOREIGN KEY ([GroupId]) REFERENCES [dbo].[Groups] ([Id]),
    CONSTRAINT [FK_Employees_Position] FOREIGN KEY ([PositionId]) REFERENCES [dbo].[Positions] ([Id])


Стало:
[Id]          INT           IDENTITY (1, 1) NOT NULL,
    [FirstName]     NVARCHAR (MAX) NULL,
    [SecondName]    NVARCHAR (MAX) NULL,
    [PositionId]    INT         NOT  NULL,
    [GroupId]       INT          NOT NULL,
    [Positions_Id]  INT            NULL,
    [Groups_Id]     INT            NULL,
CONSTRAINT [PK_dbo.Employees] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_dbo.Employees_dbo.Groups_Groups_Id] FOREIGN KEY ([Groups_Id]) REFERENCES [dbo].[Groups] ([Id]),
    CONSTRAINT [FK_dbo.Employees_dbo.Positions_Positions_Id] FOREIGN KEY ([Positions_Id) REFERENCES [dbo].[Positions] ([Id])


Почему так происходит и как это исправить?
  • Вопрос задан
  • 2597 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mayorovp
А вы случайно не переименовывали соответствующие поля в модели?

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

Войдите, чтобы написать ответ

Похожие вопросы