草庐IT

entity-framework - 数据库首先使用system.data.sqlite 1.0.93创建 Entity Framework 6.1.1模型

coder 2023-07-19 原文

我有一个刚刚使用 nuget 更新的项目。此更新 Entity Framework 从 6.1 到 6.1.1,并将 sqlite 更新到 1.0.93。我想从我最新的数据库更新我的模型。我做了以下步骤 1) 来自数据库的模型 2)选择sqlite数据库 3) 生成

生成后,我收到如下所示的错误消息。我安装了 1.0.93 设计时组件。有谁知道究竟是什么导致了这个错误。项目引用和版本都与上面显示的版本匹配。

错误信息:

您的项目引用了最新的 Entity Framework ;但是和 Entity Framework 数据库提供者 找不到与此版本兼容的数据连接。

更新:

我最终使用包管理器控制台手动安装了 6.1.0

安装包 EntityFramework - 版本 6.1.0

然后在我的 csporj 文件中替换

包\EntityFramework.6.1.1

包\EntityFramework.6.1.0

我尝试从数据库创建 EF Designer 并从数据库创建 Code First,但我仍然遇到相同的错误。

更新

我已按照 Tom 提供的说明进行操作,感谢您抽出宝贵时间进行深入回复,我们对此表示感谢。但是我无法让 Entity Framework 设计器使用 SQLite 1.0.93。我发现了什么:

1) 当我按照 Tom 的描述从工具菜单添加 SQLite 数据源时,我看到了 SQLite 数据提供程序。

2) 但是当我重新启动 visual studio 时,数据源没有连接

3)可以刷新数据源,重启后有效

4) 添加新数据项但 SQLite 未列为提供者

我仔细检查了注册表,EF6 附加到不变名称,SQLite dll 已在 GAC 中注册。我将尝试看看我还能找到什么,但此时我不确定要寻找什么。作为旁注,我已经尝试过 dotConnect,但它不适用于 EF 6.1.1。

更新 2

有谁知道 Entity Framework Designer 是否有一个日志记录选项来找出可能发生的事情?

最佳答案

[ UPDATE:要获得适用于 Visual Studio 2013 Update 4(Pro 和 Ultimate)以及最新版本的 Sqlite Providers 和 EF 的更简单的解决方案,请查看下面发布的解决方案“broslav”。不知道它是否适用于 Express 版本...]

好的,这是一个建议。这不适用于 Visual Studio Express 版本。 另外,我不确定如何让它用于更新现有项目。 这绝对是屁股上的痛苦。 我没有测试是否需要所有内容,但这应该可行:

首先,不要使用 SQLite 的 NuGet 包,而是从这里下载程序集安装程序: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

安装 32 位 Windows (.NET Framework 4.5.1) 安装程序的设置:sqlite-netFx451-setup-bundle-x86-2013-1.0.93.0.exe (10.00 MiB)(不是 64 位版本) .这是唯一一个有设计师的。

安装在GAC中选择安装,安装Designer for VS13。

对于以下内容,准确顺序很重要!

我制作了这些步骤的视频,请参阅:http://vimeo.com/103372740

在 VS13 中创建一个项目。将构建明确定位到框架 4.5.1 和 x86。保存并构建。

接下来,从 NuGet 安装最新的 EF 6 包 (6.1.1)。保存并构建。

手动添加对已安装 SQLite 程序集(包括设计器)的引用,在程序集下的引用管理器下,您可以找到用于选择 GAC 中添加的四个程序集的扩展选项:System.Data.SQLite Core + Designer + for Entity Framework + for LINQ.. 保存并构建。

然后通过“工具”下的“连接到数据库”创建到数据库的连接。在您执行任何其他操作之前保存并构建然后RESTART Visual Studio。在启动 ADO.NET 实体数据模型向导之前不要做任何其他事情,因此不要刷新数据库连接。

添加一个 ADO.NET 实体数据模型,选择从数据库生成。 您的数据库连接将显示在下拉列表中。保留它,但无论如何选择创建一个新连接并再次选择完全相同的数据库(就像您正在创建一个新连接一样)。听起来很傻,但这很关键,见下图...

当我以这种方式实际添加一个 ADO.NET 实体数据模型时,它确实出现了烦人的错误,但是“下一步”按钮是可选的并且一切正常无论如何(令人惊讶)!

设计师工作,检索数据和写入数据工作。

不过还没有在另一台机器上测试部署...我使用的是 Win7 64 位。

更改的更新:要获得正确的配置以实际访问数据库,您必须在完成所有后从 NuGet 安装 System.Data.SQLite.EF6 包以上,然后添加 <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" /> 到 App.Config 并删除其他提供程序并删除 <system.data></system.data> 之间的所有内容,否则你会得到一些异常(exception)。但请注意,这意味着每次要更新 EDMX 模型时,都必须将 App.Config invariantName="System.Data.SQLite"更改为 invariantName="System.Data.SQLite.EF6",反之亦然。

** 这变得荒谬了吗?是的!这让我很头疼...... **

关于entity-framework - 数据库首先使用system.data.sqlite 1.0.93创建 Entity Framework 6.1.1模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25089346/

有关entity-framework - 数据库首先使用system.data.sqlite 1.0.93创建 Entity Framework 6.1.1模型的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  7. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  10. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

随机推荐