Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Freesql error: Ambiguous match found for 'System.TimeSpan System.TimeSpan FromSeconds(Int64)' with the latest .NET 9.0.100-preview.3.24160.1 #1748

Open
CancanTang opened this issue Mar 13, 2024 · 2 comments

Comments

@CancanTang
Copy link

CancanTang commented Mar 13, 2024

问题描述

When we create console project to using Freesql package with the latest .NET 9 build, it stops working after launching. The exception from Visual Studio output window is: Ambiguous match found for 'System.TimeSpan System.TimeSpan FromSeconds(Int64)'. After investigating we found the bug in the FreeSql library. This line is expecting there to only be one overload of TimeSpan.FromSeconds, but there are now multiple overloads, which leads to GetMethod throwing an ambiguity exception because it doesn't know which method to bind to:

static MethodInfo MethodTimeSpanFromSeconds = typeof(TimeSpan).GetMethod("FromSeconds");

重现代码

The machine has dotnet-sdk-9.0.100-preview.3.24160.1 installed.
1.Create a new net8.0 Console project.
2.Copy the following code to Program.cs.

using FreeSql;
string ConnetionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Demo;";
var freeBuilder = new FreeSqlBuilder().UseConnectionString(DataType.SqlServer, ConnetionString).Build();
Console.WriteLine(freeBuilder);

3.Install FreeSql.Provider.SqlServer nuget package.
4.Build the app.
5.Change the runtime.config file to let the app run against with dotnet-sdk-9.0.100-preview.3.24160.1.

"framework": {
   "name": "Microsoft.NETCore.App",
   "version": "9.0.0-preview.3.24157.12"
 }

6.Launch the app.

Expected behavior
Launch successfully.

Actual behavior

System.TypeInitializationException: 'The type initializer for 'FreeSql.Internal.Utils' threw an exception.'
AmbiguousMatchException: Ambiguous match found for 'System.TimeSpan System.TimeSpan FromSeconds(Int64)'.

For more detailed bug info you can veiw : dotnet/runtime#99588

数据库版本

Microsoft SQL Server 2019 LocalDB

安装的Nuget包

FreeSql.Provider.SqlServer 3.2.815

.net framework/. net core? 及具体版本

dotnet-sdk-9.0.100-preview.3.24160.1

@2881099
Copy link
Collaborator

2881099 commented Mar 13, 2024

这么快就用.net9了啊

@CancanTang
Copy link
Author

Thank you for fixing the issue so quickly, it works with FreeSql.3.2.816-preview20240314.

2881099 added a commit that referenced this issue Mar 26, 2024
2881099 added a commit that referenced this issue Mar 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants