2015-09-16 4 views
3

Я наткнулся на проблему, когда я хочу создать базу данных, используя сначала код с Entity Framework. В последних проектах я не использовал EF для успешного подключения к моей базе данных, но теперь что-то не так.Сначала создать базу данных с кодом Entity Framework

Я создал свой файл app.config с следующим содержанием:

<connectionStrings> 
<add name="HomeCinema" 
    connectionString="Data Source= {MY SERVER NAME IN MSSQL};Initial 
    Catalog=HomeCinema;Integrated Security=SSPI; MultipleActiveResultSets=true" 
    providerName="System.Data.SqlClient" /> 

И я предполагаю, что источник данных должен содержать то, что я вхожу с на моем SQL Server.

Когда я пытаюсь создать базу данных с моими классами в проекте, я использую update-database -verbose для ее создания в консоли диспетчера пакетов, и я нацелен на правильный проект.

И вот он говорит, когда я использую обновление базы данных--verbose: целевой базы данных: 'Homecinema' (DataSource:. \ SQLEXPRESS, Поставщик: System.Data.SqlClient, Происхождение: Конвенция)

DataSource здесь отличается от того, что я указал в файле App.config. Я предполагаю, что там что-то не так, но просто не могу понять.

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

Надеюсь, я подробно описал этот вопрос, но, пожалуйста, спросите, нет ли чего-то.

Был бы очень признателен, если бы мог получить некоторые рекомендации или несколько советов, как решить эту проблему, или если есть другой способ создать базу данных.

Моего DbContext класс:

public class HomeCinemaContext : DbContext 
{ 
    public HomeCinemaContext() 
     : base("HomeCinema") 
    { 
     Database.SetInitializer<HomeCinemaContext>(null); 
    } 
    #region Entity Sets 
    public IDbSet<User> UserSet { get; set; } 
    public IDbSet<Role> RoleSet { get; set; } 
    public IDbSet<UserRole> UserRoleSet { get; set; } 
    public IDbSet<Customer> CustomerSet { get; set; } 
    public IDbSet<Movie> MovieSet { get; set; } 
    public IDbSet<Genre> GenreSet { get; set; } 
    public IDbSet<Stock> StockSet { get; set; } 
    public IDbSet<Rental> RentalSet { get; set; } 
    public IDbSet<Error> ErrorSet { get; set; } 
    #endregion 
+0

Можете ли вы разместить свой DbContext? – deramko

+0

Обновлен вопрос с помощью моего DbContext. – konkret

+0

При выполнении команды активным проектом является проект, содержащий отображаемый файл конфигурации? – CodeCaster

ответ

0

Если у вас есть два проекта, скажем, библиотеки классов и веб-приложение, ссылающееся его. Вам нужно добавить соединение из app.config в web.config в своем веб-приложении.

Когда вы нацеливаете библиотеку классов с помощью консоли диспетчера пакетов, вы сообщаете VS искать DbContext, определенный в этой сборке, но строка подключения находится из основного веб-приложения.

+0

Большое вам спасибо! Теперь он работает, база данных работает и работает! – konkret

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