Entity Framework CTP5 Code First — возможно ли разделить сущность по непервичному ключу?

Используя 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");
            });

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

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


person Col    schedule 17.02.2011    source источник


Ответы (1)


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

person Morteza Manavi    schedule 17.02.2011
comment
Спасибо за подтверждение этого Мортеза и быстрый ответ. Я перейду к реализации 1.* завтра! - person Col; 18.02.2011