Entity Framework CTP5 Code First - Возможно ли деление сущностей по неосновному ключу? - PullRequest
6 голосов
/ 17 февраля 2011

Используя EF CTP5, я пытаюсь разделить сущность, когда сущность построена из двух отдельных таблиц. Можно ли сделать это разделение, если ключ на двух таблицах не является первичным ключом?

например. Id - это мой первичный ключ в сущности Note. Я хочу получить информацию о CreatedUser из отдельной таблицы, но первичный ключ этой второй таблицы соответствует CreatedUserId в сущности Note.

        modelBuilder.Entity<Note>()
            .Map(mc =>
            {
                mc.Properties(n => new
                {
                    n.Id,
                    n.Title,
                    n.Detail,
                    n.CreatedUserId,
                    n.CreatedDateTime,
                    n.UpdatedUserId,
                    n.UpdatedDateTime,
                    n.Deleted,
                    n.SourceSystemId,
                    n.SourceSubSystemId
                });
                mc.ToTable("Notes");
            })
            .Map(mc =>
            {
                mc.Properties(n => new
                {
                    n.CreatedUserId,
                    n.CreatedUser
                });
                mc.ToTable("vwUsers");
            });

Я видел комментарии о том, что разделение сущностей возможно только в том случае, если первичный ключ сущности существует в обеих таблицах?

Заранее спасибо.

1 Ответ

2 голосов
/ 17 февраля 2011

Да, все таблицы, которые создаются в сценарии разделения сущностей, должны иметь идентификатор объекта (например, Note.Id) в качестве своего первичного ключа.В этом случае вам следует подумать о создании связи 1: * между сущностями пользователя и заметки.

...