Сначала код - почему я не вижу базу данных, которая была создана - PullRequest
0 голосов
/ 03 января 2011
<connectionStrings>
    <add name="AnalysedCompanies" 
         connectionString="Data Source=|DataDirectory|AnalysedCompanies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

public class AnalysedCompanies:DbContext
{
    public DbSet<CompanyAnalyse.WebServiceLibrary.MinisterulFinantelorData> DateMinisterulFinantelor { get; set; }
    public DbSet<CompanyAnalyse.WebServiceLibrary.ONRCData> DateONRC { get; set; }
    public DbSet<CompanyAnalyse.WebServiceLibrary.InsolventaData> DateInsolventa { get; set; }
    public DbSet<CompanyAnalyse.WebServiceLibrary.Bilant> Bilant { get; set; }
    public DbSet<CompanyAnalyse.WebServiceLibrary.ContProfitSiPierdere> ContProfitSiPierdere { get; set; }
    public DbSet<CompanyAnalyse.WebServiceLibrary.DateInformativeBilant> DateInformativeBilant { get; set; }  
}

Почему я не вижу файл sdf, созданный в обозревателе решений? Показать все файлы активны.

Данные сохранены, потому что я могу получить их при следующем запуске, но не вижу свою базу данных, которую должен создать Code First.

Ответы [ 3 ]

1 голос
/ 24 сентября 2012

Code First использует много соглашений, для строк подключения он использует строку подключения, основанную на полностью определенном типе контекста данных, который включает пространство имен.Поэтому вам нужно назвать свою строку подключения yournamespace.AnalysedCompanies, а не просто AnalysedCompanies.В противном случае EF использует строку подключения на основе значений по умолчанию, то есть для создания новой базы данных в локальном SQLExpress или LocalDB с этим именем.

В качестве альтернативы, вы можете передать строку подключения, которую вы хотите использовать, в DbContext, используяконструктор, который принимает строку подключения или имя:

 public AnalysedCompanies() : base ("name=AnalysedCompanies") {}
1 голос
/ 06 января 2011

.sdf файл будет находиться в каталоге App_Data или Debug / Release / executing в зависимости от типа приложения.

Вы должны «обновить» эти каталоги, прежде чем увидите новые файлы.

0 голосов
/ 18 января 2012

Иногда (особенно если есть другая строка подключения к экземпляру SQL Server Express, запущенная на компьютере), DbContext игнорирует именованную строку подключения и создает ваши таблицы в базе данных Express, а не в формате sdf CE.

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

 public class AnalysedCompanies:DbContext
    {
        public AnalysedCompanies() : base ("AnalysedCompanies") {}

        public DbSet<CompanyAnalyse.WebServiceLibrary.MinisterulFinantelorData> DateMinisterulFinantelor { get; set; }
        public DbSet<CompanyAnalyse.WebServiceLibrary.ONRCData> DateONRC { get; set; }
        public DbSet<CompanyAnalyse.WebServiceLibrary.InsolventaData> DateInsolventa { get; set; }
        public DbSet<CompanyAnalyse.WebServiceLibrary.Bilant> Bilant { get; set; }
        public DbSet<CompanyAnalyse.WebServiceLibrary.ContProfitSiPierdere> ContProfitSiPierdere { get; set; }
        public DbSet<CompanyAnalyse.WebServiceLibrary.DateInformativeBilant> DateInformativeBilant { get; set; }


    }

На этом этапе ваш DbContext должен использовать указанное соединение и создать файл в ожидаемом месте.

...