吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 685|回复: 18
上一主题 下一主题
收起左侧

[求助] 精通.net framework6.0和sqlite的大佬帮忙看看

[复制链接]
跳转到指定楼层
楼主
15198743250 发表于 2024-9-4 00:07 回帖奖励
我想使用ef来操作sqlite数据库,但是一直连接不上,还一直报错,这是什么原因啊,求大佬帮忙看看(报错的详细信息在最下面)我不管百度还是用ai都没解决我是使用代码优先的模式


代码如下:
App.config
[C#] 纯文本查看 复制代码
<configuration>
	<configSections>
		<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
		<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
	</configSections>
	<system.data>
		<DbProviderFactories>
			<remove invariant="System.Data.SQLite.EF6" />
			<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" 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>
	</system.data>
	<entityFramework>
		<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
			<parameters>
				<parameter value="mssqllocaldb" />
			</parameters>
		</defaultConnectionFactory>
		<providers>
			<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
			<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
			<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
		</providers>
	</entityFramework>
	<connectionStrings>
		<add name="BrushAndPracticeQuestionsConnectionStringName" connectionString="Data Source=.;Initial Catalog=BrushAndPracticeQuestions;Integrated Security=True;" providerName="System.Data.SqlClient" />
		<add name="SqliteContext" connectionString="data source=.\Data\Plugin1.db;Version=3;" providerName="System.Data.SQLite.EF6" />
		<!--//Version=3;-->
	</connectionStrings>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<dependentAssembly>
				<assemblyIdentity name="office" publicKeyToken="71e9bce111e9429c" culture="neutral" />
				<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="16.0.0.0" />
			</dependentAssembly>
		</assemblyBinding>
	</runtime>
</configuration>


数据库上下文类
[Asm] 纯文本查看 复制代码
    public class SqLitePluginContext : DbContext
    {
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            var sqliteConnectionInitializer = new SqliteCreateDatabaseIfNotExists<SqLitePluginContext>(modelBuilder);
            Database.SetInitializer(sqliteConnectionInitializer);
        }
        public SqLitePluginContext() : base("SqliteContext") { } //配置使用的连接名
        public DbSet<Plugin> Plugin { get; set; }


    }


模型类

[Asm] 纯文本查看 复制代码
    public class Plugin
    {
        [Key]// 主键
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]// 自增
        private int pluginID;
        private string pluginName;
        private string pluginVersion;
        private DateTime pluginUpdateDate;
        private string pluginAuthorName;
        private string pluginIntroduce;

        public string PluginName { get => pluginName; set => pluginName = value; }
        public string PluginVersion { get => pluginVersion; set => pluginVersion = value; }
        public DateTime PluginUpdateDate { get => pluginUpdateDate; set => pluginUpdateDate = value; }
        public string PluginAuthorName { get => pluginAuthorName; set => pluginAuthorName = value; }
        public string PluginIntroduce { get => pluginIntroduce; set => pluginIntroduce = value; }
        public int PluginID { get => pluginID; set => pluginID = value; }
    }


报错的信息
[Asm] 纯文本查看 复制代码
System.TypeInitializationException
  HResult=0x80131534
  Message=The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception.
  Source=EntityFramework
  StackTrace:
   在 System.Data.Entity.DbContext..ctor(String nameOrConnectionString)
   在 BrushQuestionsDAL.EntityFramework.SqLitePluginContext..ctor() 在 D:\backups\Code\Visual Studio\.Net\BrushQuestions\BrushQuestionsDAL\EntityFramework\SqLitePluginContext.cs 中: 第 25 行
   在 BrushQuestionsBLL.Form.Testx.ccc() 在 D:\backups\Code\Visual Studio\.Net\BrushQuestions\BrushQuestionsBLL\Form\Testx.cs 中: 第 17 行
   在 BrushQuestions.TestForm.button3_Click(Object sender, EventArgs e) 在 D:\backups\Code\Visual Studio\.Net\BrushQuestions\BrushQuestions\Application\System\Test\TestForm.cs 中: 第 54 行
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

  此异常最初是在此调用堆栈中引发的: 
    System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(bool)
    System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(System.Configuration.ConfigurationSchemaErrors)
    System.Configuration.ClientConfigurationSystem.EnsureInit(string)

内部异常 1:
ConfigurationErrorsException: Configuration system failed to initialize

内部异常 2:
ConfigurationErrorsException: Unrecognized configuration section system.data. (D:\backups\Code\Visual Studio\.Net\BrushQuestions\BrushQuestions\bin\Debug\net6.0-windows\BrushQuestions.dll.config line 7)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
 楼主| 15198743250 发表于 2024-9-4 00:09 |楼主
3#
 楼主| 15198743250 发表于 2024-9-4 00:10 |楼主
4#
killjd 发表于 2024-9-4 06:42
base那提示是配置使用的连接名,按理解base("SqliteContext")这里填的字符串是不是应该是base(“SQLite Data Provider (Entity Framework 6)”)之类的,否则程序怎么知道你使用的哪个配置项。除非是在约定大于配置的模式下。
5#
killjd 发表于 2024-9-4 06:44
15198743250 发表于 2024-9-4 00:10
我的项目是win form的

不管是winform还是web,首先肯定要保证有sqlite的对应库在搜索目录下存在
6#
ipc2008 发表于 2024-9-4 08:34
15198743250 发表于 2024-9-4 00:10
我的项目是win form的

sqlite 3.X版本支持不好,建议换低版本试试,尤其你还是winform平台,Microsoft.Data.Sqlite功能够用了,谈性能?你用winform交互UI都够呛。
7#
coolcalf 发表于 2024-9-4 09:09
framework6.0? 微软笑了.

别再用EF,难用死了。
换成sqlsugar
8#
pdone 发表于 2024-9-4 09:13
看看是不是DbContext构造函数入参错了



https://learn.microsoft.com/zh-c ... ity-framework-6.2.0
9#
typescript 发表于 2024-9-4 09:24
本帖最后由 typescript 于 2024-9-4 09:29 编辑

1. 没有.net framework6.0 这种称呼
2. 建议上.net 6或者8版本,ef core更好用
3.你nuget怎么加这么多?

建议放上整个项目代码或者github连接
10#
freesaber 发表于 2024-9-4 09:55
这是codefirst的好处,一开始就劝退你,不是项目开发一半了,再去考虑换。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 05:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表