2016-07-19 3 views
1

Я использую 5.2.3 MVC (с VS 2015). Я создал несколько классов для использования с Entity Framework. Они находятся в папке «Модель». Более старые файлы классов появляются в проводнике сервера, но это не так. В одном классе у меня есть код:Невозможно связать класс с Entity Framework

public class BookReviews: DbContext 
{ 
    public DbSet<Book> Books{ get; set; } 
    public DbSet<BookReview> Reviews { get; set; } 
} 

и класс Книга для примера достаточно прост:

public class Book 
{ 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
    public virtual string Author{ get; set; } 

    public ICollection<BookReviews> Reviews { get; set; } 

} 

НО независимо от того, что я делаю, чистый, не восстановить, оставить VS и идти обратно, Я могу перейти к представлению проводника БД, у которого есть старые и теперь неиспользуемые таблицы (файл класса), но не они. Есть ли способ заставить их войти в структуру Entity Framework?

Incorrect EF Tables Артисты и жанры исчезли. НО классы книг ... они не появляются. ЗАЧЕМ?

+0

но где ключ в классе книги [Ключ], я не уверен, хотя –

+0

Не могли бы вы показать скриншот? – Win

+0

Похоже, вы просто не повторно развернули изменения кода в базе данных - вы попробовали предложение @ can? – Fred

ответ

0
public class Book 
{ 
    [Key] 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
    public virtual string Author{ get; set; } 

    public ICollection<BookReviews> Reviews { get; set; } 

} 
+0

Я не использовал ICollection, поэтому я не могу сказать много –

+0

Да, я добавил Ключ. Не имеет значения. Я обновляю, перестраиваю, он остается неизменным. – Ron

+0

Как информация EF попадает в проводник базы данных, поэтому я могу добавить данные в таблицу в качестве локального сервера. – Ron

0

Необходимо пометить коллекцию отзывов как виртуальную.

, например:

public virtual ICollection<BookReviews> Reviews {get; set;} = new HashSet<BookReviews>(); 
+0

Добавьте его. Удалены неиспользуемые файлы классов. Ничего не изменилось. – Ron

+0

И самое неприятное в моем подключении по умолчанию после того, как я удалил неиспользуемые классы, и после того, как я удалил таблицы, которые относятся к этим классам (и я не уверен, как они туда попали), и после того, база данных, эти удаленные классы снова появились, а новые - нигде не найдены. – Ron

1

ли вы запустить update-database из консоли менеджера пакетов?

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