[Teamwork] DB Apps - SQLite провайдър - някой успя ли да го подкара?
Някой успя ли да подкара провайдъра, при мен не се появява в магьосника. Не намерих решение в нета.
Ако може да сподели рецептата!
Някой успя ли да подкара провайдъра, при мен не се появява в магьосника. Не намерих решение в нета.
Ако може да сподели рецептата!
Здрасти !
Ето какво направих за да тръгне :
Инсталирате версия на 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="data source=(пътя до базичката)"" providerName="System.Data.EntityClient" />
.edmx се самогенирира при създаване на ADO.NET Entiy Data Model във VisualStudio.
Важното е "provider=SQLiteTestEntities.EF6" да се промени на "provider=SQLiteTestEntities" и същото за "providerName=...".
Успех !
Хора, когато стигна до тази част от туториела "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? Просто Нюгет не ми дава да инсталирам друга версия, по-ниска, както е описано в туториела, който между другото си е старичък вече, от миналата година....
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" или която версия имате.
Благодаря ти за описанието, аз го открих преди два дни, но не се сетих да пиша
иначе това е статията която ми помогна на мен - последния отговор! Като гледам и ти воероятно си намерил точно него. Като цяло стигнах до заключението, че SQLite не трябва да ти е първи избор ако работиш със EF. Поне за момента!