2017-01-06 2 views
0

Я недавно модернизировал EF через NuGet, но теперь, когда мой код будет получить доступ к Бревну объекта установить его бросает выше исключение ..Множественные наборы объектов по типу не поддерживаются? -

ошибки гласит, что множество объектов журналов и Fulfillment.Model.IUnitOfWork.Logs 'могут содержать экземпляры типа «Fulfillment.Model.Log».

Недавно я установил hangfire с ninject, и мне интересно, если это что-то с этим связано?

Вот мой DataContext/UOW

public interface IUnitOfWork 
{ 
    IDbSet<Log> Logs { get; } 
    IDbSet<Order> Orders { get; } 
    void Commit(); 
} 

public partial class FulfillmentEntities : DbContext, IUnitOfWork 
{ 
    public FulfillmentEntities() 
     : base("name=FulfillmentEntities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public DbSet<Log> Logs { get; set; } 
    public DbSet<Order> Orders { get; set; } 

    IDbSet<Log> IUnitOfWork.Logs 
    { 
     get { return Logs; } 
    } 

    void IUnitOfWork.Commit() { 
     SaveChanges(); 
    } 

    IDbSet<Order> IUnitOfWork.Orders 
    { 
     get { return Orders; } 
    } 
} 

}

Любые советы будут оценены.

+0

Было бы полезно знать, старые и модернизированы версии EF. –

+0

полностью отделен от издания, но DbContext - это единица работы. Я не понимаю ценность вашего IUnitOfWork. – Fran

ответ

1

Вы Logs подвергаясь дважды:

public DbSet<Log> Logs { get; set; } 

IDbSet<Log> IUnitOfWork.Logs 
{ 
    get { return Logs; } 
} 

(и тот же вопрос с Orders)

Попробуйте изменить свой код:

public partial class FulfillmentEntities : DbContext, IUnitOfWork 
{ 
    public FulfillmentEntities() 
     : base("name=FulfillmentEntities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public IDbSet<Log> Logs { get; set; } 

    public IDbSet<Order> Orders { get; set; } 


    public void Commit() 
    { 
     SaveChanges(); 
    } 

} 
+0

Спасибо за быстрый ответ! Должно быть больше, так как код старше 800 дней, и после обновления также вызывается OnModelCreatingMethod и вызывается UnintentionalCodeFirstException ... Любые предложения о том, как его упростить? Первоначально он генерировался с помощью шаблона tt – TheLearningDev

+0

, из какой версии вы обновили, какова новая версия? – Alex

+0

Привет, я обновил с 4 до 5 – TheLearningDev

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