2016-12-23 3 views
3

В Entity Framework 6, вы можете разделить объект будет сохранен в нескольких таблицах с помощью функции MAP:Entity Framework Основная таблица Расщепление подход

modelBuilder.Entity<Employee>() 
    .Map(map => 
    { 
    map.Properties(p => new 
    { 
    p.EmployeeId, 
    p.Name, 
    p.Code 
    }); 
    map.ToTable("Employee"); 
    }) 
    // Map to the Users table 
    .Map(map => 
    { 
    map.Properties(p => new 
    { 
    p.PhoneNumber, 
    p.EmailAddress 
    }); 
    map.ToTable("EmployeeDetails"); 
    }); 

Я интересно, если кто-нибудь знает, возможно ли это сделать на ядро искажения, я искал его долгое время и не нашел ничего подобного.

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

Любая помощь будет оценена, спасибо.

+1

Я не думаю, что это возможно. Множество вариантов, например, наследование картирования или разделение таблиц, не были реализованы с EF Core 1.1. –

ответ

2

еще не реализовано, как можно видеть в этом открытом билете: https://github.com/aspnet/EntityFramework/issues/619

+0

Этот билет имеет значение * table * split, которое реализовано в ef-core 2.0.0. OP говорит о разделении * сущности * и использует неправильный термин в заголовке вопроса. –

0

Если вам нужно разделить вашу сущность между различными таблицами, один подход, который вы упомянули, в настоящее время не реализована EF_core.

Другой вариант - создать представление на стороне БД и настроить сущность для получения данных оттуда. ( Недостаток этого подхода, очевидно, состоит в том, что вам нужно будет включить пользовательскую логику, чтобы иметь возможность добавлять, обновлять или удалять элементы из этой модели.

Смежные вопросы