shuxinqin / Chloe

A lightweight and high-performance Object/Relational Mapping(ORM) library for .NET --C#
https://github.com/shuxinqin/Chloe/wiki
MIT License
1.52k stars 455 forks source link

调用SqlQueryAsync<T> 方法出错。 #337

Closed yzg100 closed 2 years ago

yzg100 commented 2 years ago

环境 :.NET 4.6 数据库:SQLite,(数据库使用Demo 提供的) 代码如下:

internal class Program
{
    static void Main(string[] args)
    {
        IDbContext context = new SQLiteContext(CreateConnection);
        var list = context.Query<Person>().ToList();

        // Core 环境调用正常,但使用 .NET 4.6框架调用出错。
        var result = context.SqlQueryAsync<Person>("SELECT * FROM PERSON WHERE ID = @Id", DbParam.Create("Id", 1)).Result;
        Console.WriteLine(result);

        Console.ReadKey();
    }

    private static IDbConnection CreateConnection()
    {
        return new SQLiteConnection("Data Source=Chloe.db;");
    }
}
shuxinqin commented 2 years ago

我测试时可以的,复现不了哦~ 你查看下异常信息

yzg100 commented 2 years ago

不要使用源码里的测试项目,因为测试项目是Core版本的。你可以直接新建一个 .NET 4.8或以下框架的项目,直接从Nuget上引用Chloe ,都可以复现此问题。问题应该是出在 异步IAsyncEnumerable里, await enumerator.DisposeAsync(); 时抛出的异常。

shuxinqin commented 2 years ago

使用nuget的包试了,没发现问题 你看能不能贴异常出来

yzg100 commented 2 years ago

使用nuget的包试了,没发现问题 你看能不能贴异常出来 代码和截图我都上传到网盘了,阿里云盘没打包,可以直接看截图。

百度网盘:https://pan.baidu.com/s/1JywJv8ps6WcAxPIaUJvpaQ 提取码:1111

阿里云盘:https://www.aliyundrive.com/s/67zDBX3NEKs

shuxinqin commented 2 years ago

你直接贴ex.message和ex.StackTrace 不更直接了当点- -

shuxinqin commented 2 years ago

问题复现了,晚点发布

shuxinqin commented 2 years ago

最新版 v5.1.4 已修复

yzg100 commented 2 years ago

最新版 v5.1.4 已修复

感谢,辛苦了。