2014-01-21 2 views
0

У меня есть сущность:EntityFramework требует миграции, когда подкласс объект

namespace Project.Models.DbModels 
{ 
    public class MyEntity 
    { 
     public long Id { get; set; } 
     public long Number { get; set; } 
     public SomeOtherEntity otherEntity{ get; set; } 
    } 
} 

Я подклассы его, чтобы добавить список SomeOtherEntity (как модель представления), чтобы использовать его в качестве точки зрения выпадающего меню.

namespace Project.Models.ViewModels 
    { 
     public class MyNewEntity : MyEntity 
     { 
      public List<SomeOtherEntity> otherEntities { get; set; } 
     } 
    } 

И контекст ДБ:

namespace DskVault.Models.DbModels 
{ 
    public class MyDbContext : DbContext 
    { 
     public MyDbContext() 
      : base("DefaultConnection") 
     { 
     } 

     public DbSet<MyEntity> MyEntities { get; set; } 

    } 
} 

Обратите внимание, что MyNewEntity не в контексте.

Проблема заключается в том, что при выполнении Add-Migration фреймворк связывается с добавлением столбца в SomeOtherEntity, который ссылается на столбец представлений (MyNewEntity) и дискриминатор в MyEntity. Как я могу это преодолеть. Я не хочу, чтобы управляемый класс (MyNewEntity) управлялся EF и база данных, которая должна быть обновлена ​​соответствующим образом.

ответ

1

Подкласс класса создает новый класс сущности, которым будет управлять EF. Поэтому не создавайте подкласс для создания моделей представления, а вместо этого создавайте карту.

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

+1

Последующий от точки Колинса automapper сэкономит много работы - https://github.com/AutoMapper/AutoMapper/wiki/Getting-started – HockeyJ

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