powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
7 сообщений из 7, страница 1 из 1
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38318737
Fet Frumos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте компактное хранилище данных, без необходимости инсталяции дополнительных библиотек. Очень желательна поддержка Entity Framework если это будет база. Как варианты расматриваю Sql compact (нужна инсталяция клиента), SqlLite (в системе может не оказаться нужных библиотек), или хранение инфы в XML.
...
Рейтинг: 0 / 0
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38318949
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fet Frumos,

SQLite и SQLCe устанавливаются как dll, которые лежат рядом с вашим приложением. Так что подойдут оба.
...
Рейтинг: 0 / 0
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38319968
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38321687
Fet Frumos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С развертыванием не все так просто. На компьютере пользователя Sql compact ставить не буду, пробую подложить dll не работает. Если у есть рабочий пример поделитесь пож. Пока ищу в сети.
...
Рейтинг: 0 / 0
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38322183
Fet Frumos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде разобрался. Я использую CodeFirst, что нужно сделать в этом случае
1. Прописываем в App.config
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<connectionStrings>
    <add name="MyContext"
         providerName="System.Data.SqlServerCe.4.0"
         connectionString="Data Source=|DataDirectory|Db.sdf"/>
  </connectionStrings>

  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0"/>
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
  </system.data>



имя строки соединения совпадает с именем контекста, подхватывает по умолчанию. В проект добавляет ссылки на System.Data.SqlServerCe, System.Data.SqlServerCe.Entity. В их свойствах ставим копировать локально. Так же подкладываем dll из каталога Sql commpact edition( смотрим в Program Files) в количестве 7 штук. После этого должно работать на клиенте где Sql CE не установлен. Линк по теме
...
Рейтинг: 0 / 0
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38331830
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlite как бы вызывается хорошо

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
  DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite");
  using (SQLiteConnection cnn = (SQLiteConnection)fact.CreateConnection())
  {
    cnn.ConnectionString = "Data Source=trace.db";
    cnn.Open();
    if (Settings.tblFill){
      DataSet ds = new DataSet();
  //     
      SQLiteDataAdapter da = new SQLiteDataAdapter( "select * from version", cnn);
     // SQLiteDataAdapter da1 = new SQLiteDataAdapter(  cnn);
      da.Fill(ds, "select");
      PrintTable(ds, "select",  true);
      ds.Dispose();
    }
    else {
     SQLiteCommand cmd = new SQLiteCommand (cnn);
     cmd.CommandText = "select * from version";
                                                                

     SQLiteDataReader  dr =  cmd.ExecuteReader();
     Console.WriteLine ("fields number: '{0}'", dr.FieldCount);

     if (dr.HasRows){
       while (dr.Read()){
         Console.WriteLine ("col1/name: '{0}'/'{2}', col2: '{1}', val column: '{3}'"
                  , dr.GetValue(0)
                  , dr.GetValue(1)
                  , dr.GetName(0)
                  , dr["val"]
                  );
       }
     }
    
     dr.Close();
    }
  }



а можно чтото сделать с app.config и или кодом приложения

что бы его (файла конфиг) не было?




Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<configuration>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.86.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>
</configuration>

...
Рейтинг: 0 / 0
Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
    #38334911
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
upd
никакого конфига не надо если не использовать гетфактори
Код: c#
1.
2.
3.
4.
5.
 // DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite");

  
//  using (SQLiteConnection cnn = (SQLiteConnection)fact.CreateConnection())
  using (SQLiteConnection cnn = new SQLiteConnection("Data Source=trace.db"))
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Посоветуйте компактное хранилище (без необходимости инсталяции + Entity Framework)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]