Професионална програма
Loading...
+ Нов въпрос
Jazastry avatar Jazastry 51 Точки
Best Answer

Здрасти !

Ето какво направих за да тръгне :

Инсталирате версия на SQLite от  ТУК.


Версията трябва да е тип  sqlite-netFx451-setup-bundle-x86-2013-1.0.96.0.exe.

Тоест трябва да е "-setup-"  трябва да е 32-бит = "х86".

Версията трябва да отговаря на .NET версията която имате  .NET 4.5.1  = "netFx451".

Версията на VisualStudio трябва да отговаря  примерно за VisualStudio 2013 = "x86-2013-".

.Версията на SQLite EF6 NuGet package от visualStudio трябва отговаря на версията на пакета 

например 1.0.96 = "-1.0.96.0.exe" .


 Ако имате разминаване в предишно инсталирана версия трябва първо тя да се деинсталира.


След като инсталирате версията на SQLite, влизате във VisualStudio и махате предишни версии на NuGet пръвайдъри,

драйвери ако не отговарят и си инсталирате отговарящи, инсталирате ги и на стартовия проеткт съдържащ

Program.cs и на този с базата (ако са различни).

Инсталирате  System.Data.SQLite (x86/x64) то депендва на още три и би трябвало да инсталира и тях автоматично ако не , те са:

System.Data.SQLite Core (x86/x64),

System.Data.SQLite EF6 (x86/64),

System.Data.SQLite LINQ (x86/x64)

(същите 4 трябва да се инсталират и на Program.cs проекта.)

 

От ServerExplorer правите нова връзка и се свързвате с преди това направен файл със разширение .db. За да го създам използвах sqliteman .

Създавате ADO.NET Entiy Data Model във проект със инсталираните System.Data.SQLite пакети.

След това във  App.config на стартовия (sсъдържащия Program.cs проект) оставяте самогенирираните

<providers> и добавяте:

 <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

Във частта  <DbProviderFactories> оставяте самогенирираните и добавяте:


 <DbProviderFactories>
      ...

      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />   

<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" /> 

</DbProviderFactories>


и във "connectionStrings" частта сменяте или добавяте:


<add name="(името което сте задали във конструктора на DbContext класа)" connectionString="metadata=res://*/(името на .edmx файла).csdl|res://*/(името на .edmx файла).ssdl|res://*/(името на .edmx файла).msl;provider=System.Data.SQLite;provider connection string=&quot;data source=(пътя до базичката)&quot;" providerName="System.Data.EntityClient" />

.edmx се самогенирира при създаване на ADO.NET Entiy Data Model във VisualStudio.
Важното е  "provider=SQLiteTestEntities.EF6" да се промени на  "provider=SQLiteTestEntities" и същото за "providerName=...".

Успех !

8
17/03/2015 13:06:19
Jazastry avatar Jazastry 51 Точки

sqlite-netFx451-setup-bundle-x86-2013-1.0.96.0.exe  инсталацията трябва да е 32 битова понеже ( както може би вече сте открили при свързването на Oracle Database Express 11g) Visual Studio е 32 битово и 64 битовите конектори не успяват да се свържат.

Също при инстатацията на sqlite-netFx451-setup-bundle-x86-2013-1.0.96.0.exe,

във "Select Additional Tasks" частта трябва да се чекнат

"Install the assemblies into the global assembly cache." ,

"Install the designer components for Visual Studio 2013" или която версия имате.

2
presian avatar presian 223 Точки

Благодаря ти за описанието, аз го открих преди два дни, но не се сетих да пиша yell

иначе това е статията която ми помогна на мен - последния отговор! Като гледам и ти воероятно си намерил точно него. Като цяло стигнах до заключението, че SQLite не трябва да ти е първи избор ако работиш със EF. Поне за момента!

0
Matrix avatar Matrix 1088 Точки

Хора, когато стигна до тази част от туториела "Add an ADO.NET Entity Data Model, select Generate from Database. Your database connection will show up in the drop-down list. Keep it there, but select to create a New Connection anyway and select the exact same database again (as if you are creating a new connection). It sounds silly, but it is crucial, see image below..."

При мен просто не се показва опцията да избера SQlite сървъра... Как я минахте тази стъпка?... Много е проклет тоя SQLite, просто не спирам да го псувам в момента!!!

Дали не е защото ЕF ми е версия 6.1.3? Просто Нюгет не ми дава да инсталирам друга версия, по-ниска, както е описано в туториела, който между другото си е старичък вече, от миналата година....

 

0
22/03/2015 18:26:15
presian avatar presian 223 Точки

Последния отговор на broslav е това което ще ти помогне!

0
22/03/2015 20:13:01
Matrix avatar Matrix 1088 Точки

Абе аз тва го прескочих по некво чудо, обаче забих на кофигурацията на connection Стринга... Откъде ли не не взимах варианти и оттук и от там, обаче не ще и не ще, егати проклетото SQlite...

0