diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6e151cb..3e74513 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -23,13 +23,13 @@ jobs:
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
- dotnet-version: 8.0.100
+ dotnet-version: 9.x
source-url: https://nuget.pkg.github.com/bpslogicbuilder/index.json
env:
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add Telerik Nuget source
- run: dotnet nuget add source https://nuget.telerik.com/nuget -n telerik -u ${{ secrets.TELERIK_USERNAME }} -p ${{ secrets.TELERIK_PASSWORD }}
+ run: dotnet nuget add source https://nuget.telerik.com/v3/index.json -n telerik -u ${{ secrets.TELERIK_USERNAME }} -p ${{ secrets.TELERIK_PASSWORD }}
- name: Add AutoMapper Myget Source
run: dotnet nuget add source https://www.myget.org/F/automapperdev/api/v3/index.json -n automappermyget
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 49b6fa8..263b87f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -21,13 +21,13 @@ jobs:
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
- dotnet-version: 8.0.100
+ dotnet-version: 9.x
source-url: https://nuget.pkg.github.com/bpslogicbuilder/index.json
env:
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add Telerik Nuget source
- run: dotnet nuget add source https://nuget.telerik.com/nuget -n telerik -u ${{ secrets.TELERIK_USERNAME }} -p ${{ secrets.TELERIK_PASSWORD }}
+ run: dotnet nuget add source https://nuget.telerik.com/v3/index.json -n telerik -u ${{ secrets.TELERIK_USERNAME }} -p ${{ secrets.TELERIK_PASSWORD }}
- name: Set Variables
run: |
diff --git a/LogicBuilder.Data/LogicBuilder.Data.csproj b/LogicBuilder.Data/LogicBuilder.Data.csproj
index d663806..43c5e79 100644
--- a/LogicBuilder.Data/LogicBuilder.Data.csproj
+++ b/LogicBuilder.Data/LogicBuilder.Data.csproj
@@ -22,11 +22,11 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.Domain/LogicBuilder.Domain.csproj b/LogicBuilder.Domain/LogicBuilder.Domain.csproj
index 844ee74..35f7928 100644
--- a/LogicBuilder.Domain/LogicBuilder.Domain.csproj
+++ b/LogicBuilder.Domain/LogicBuilder.Domain.csproj
@@ -22,11 +22,11 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests.csproj b/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests.csproj
index 72b9656..f8afc8e 100644
--- a/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests.csproj
+++ b/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests/LogicBuilder.EntityFrameworkCore.SqlServer.IntegrationTests.csproj
@@ -1,20 +1,20 @@
- net8.0
+ net9.0
false
-
-
-
-
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/LogicBuilder.EntityFrameworkCore.SqlServer.Tests/LogicBuilder.EntityFrameworkCore.SqlServer.Tests.csproj b/LogicBuilder.EntityFrameworkCore.SqlServer.Tests/LogicBuilder.EntityFrameworkCore.SqlServer.Tests.csproj
index a7f56df..bf0a6b4 100644
--- a/LogicBuilder.EntityFrameworkCore.SqlServer.Tests/LogicBuilder.EntityFrameworkCore.SqlServer.Tests.csproj
+++ b/LogicBuilder.EntityFrameworkCore.SqlServer.Tests/LogicBuilder.EntityFrameworkCore.SqlServer.Tests.csproj
@@ -1,15 +1,15 @@
- net8.0
+ net9.0
false
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.EntityFrameworkCore.SqlServer/LogicBuilder.EntityFrameworkCore.SqlServer.csproj b/LogicBuilder.EntityFrameworkCore.SqlServer/LogicBuilder.EntityFrameworkCore.SqlServer.csproj
index 4c91c09..795aa6e 100644
--- a/LogicBuilder.EntityFrameworkCore.SqlServer/LogicBuilder.EntityFrameworkCore.SqlServer.csproj
+++ b/LogicBuilder.EntityFrameworkCore.SqlServer/LogicBuilder.EntityFrameworkCore.SqlServer.csproj
@@ -1,13 +1,13 @@
- net6.0;net7.0;net8.0
+ net8.0;net9.0
LogicBuilder.EntityFrameworkCore.SqlServer
LogicBuilder.EntityFrameworkCore.SqlServer
BlaiseD
Given an EF Core DBContext, LogicBuilder.EntityFrameworkCore.SqlServer uses AutoMapper configurations to support CRUD operations using the DTO objects.
false
- Bug fix: Allow delete after updating an entity.
+ Supporting .NET 9.0.
crud operations efcore
Copyright © BPS 2017
https://github.com/BpsLogicBuilder/LogicBuilder.DataComponents
@@ -22,31 +22,27 @@
-
+
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
+
+
-
-
+
+
diff --git a/LogicBuilder.Expressions.EntityFrameworkCore/LogicBuilder.Expressions.EntityFrameworkCore.csproj b/LogicBuilder.Expressions.EntityFrameworkCore/LogicBuilder.Expressions.EntityFrameworkCore.csproj
index f2a51ff..1c3d999 100644
--- a/LogicBuilder.Expressions.EntityFrameworkCore/LogicBuilder.Expressions.EntityFrameworkCore.csproj
+++ b/LogicBuilder.Expressions.EntityFrameworkCore/LogicBuilder.Expressions.EntityFrameworkCore.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net8.0;net9.0
LogicBuilder.Expressions.EntityFrameworkCore
LogicBuilder.Expressions.EntityFrameworkCore
BlaiseD
@@ -22,28 +22,24 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
+
+
-
-
+
+
diff --git a/LogicBuilder.Expressions.Utils.Tests/LogicBuilder.Expressions.Utils.Tests.csproj b/LogicBuilder.Expressions.Utils.Tests/LogicBuilder.Expressions.Utils.Tests.csproj
index 24f1d0a..0b9816c 100644
--- a/LogicBuilder.Expressions.Utils.Tests/LogicBuilder.Expressions.Utils.Tests.csproj
+++ b/LogicBuilder.Expressions.Utils.Tests/LogicBuilder.Expressions.Utils.Tests.csproj
@@ -1,19 +1,20 @@
- net8.0
+ net9.0
false
-
-
-
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.Expressions.Utils.Tests/QueryableExpressionTests.cs b/LogicBuilder.Expressions.Utils.Tests/QueryableExpressionTests.cs
index 93ca40c..e7ec078 100644
--- a/LogicBuilder.Expressions.Utils.Tests/QueryableExpressionTests.cs
+++ b/LogicBuilder.Expressions.Utils.Tests/QueryableExpressionTests.cs
@@ -1,6 +1,5 @@
using Contoso.Data.Entities;
using LogicBuilder.Expressions.Utils.ExpressionBuilder;
-using LogicBuilder.Expressions.Utils.ExpressionBuilder.Arithmetic;
using LogicBuilder.Expressions.Utils.ExpressionBuilder.Cacnonical;
using LogicBuilder.Expressions.Utils.ExpressionBuilder.Collection;
using LogicBuilder.Expressions.Utils.ExpressionBuilder.Lambda;
@@ -9,7 +8,6 @@
using LogicBuilder.Expressions.Utils.Tests.Data;
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using Xunit;
diff --git a/LogicBuilder.Expressions.Utils/Constants.cs b/LogicBuilder.Expressions.Utils/Constants.cs
index dee998d..02fbd7e 100644
--- a/LogicBuilder.Expressions.Utils/Constants.cs
+++ b/LogicBuilder.Expressions.Utils/Constants.cs
@@ -10,9 +10,11 @@ public struct AttributeNames
public const string PROPERTYSOURCEPARAMETER = "propertySourceParameter";
}
- public struct NET6OnlyLiteralTypeNames
+ public struct UnreferencedLiteralTypeNames
{
public const string DATEONLY = "System.DateOnly";
public const string TIMEONLY = "System.TimeOnly";
+ public const string DATE = "Microsoft.OData.Edm.Date";
+ public const string TIMEOFDAY = "Microsoft.OData.Edm.TimeOfDay";
}
}
diff --git a/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericDateOperator.cs b/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericDateOperator.cs
index 8152485..43eaf1d 100644
--- a/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericDateOperator.cs
+++ b/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericDateOperator.cs
@@ -1,5 +1,4 @@
-using Microsoft.OData.Edm;
-using System;
+using System;
using System.Linq.Expressions;
namespace LogicBuilder.Expressions.Utils.ExpressionBuilder.DateTimeOperators
@@ -21,8 +20,8 @@ private Expression Build(Expression operandExpression)
if (operandExpression.Type != typeof(DateTimeOffset)
&& operandExpression.Type != typeof(DateTime)
- && operandExpression.Type != typeof(Date)
- && operandExpression.Type.FullName != NET6OnlyLiteralTypeNames.DATEONLY)
+ && operandExpression.Type.FullName != UnreferencedLiteralTypeNames.DATE
+ && operandExpression.Type.FullName != UnreferencedLiteralTypeNames.DATEONLY)
return operandExpression;
return Expression.Add
diff --git a/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericTimeOperator.cs b/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericTimeOperator.cs
index bbef641..b2ec652 100644
--- a/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericTimeOperator.cs
+++ b/LogicBuilder.Expressions.Utils/ExpressionBuilder/DateTimeOperators/ConvertToNumericTimeOperator.cs
@@ -1,5 +1,4 @@
-using Microsoft.OData.Edm;
-using System;
+using System;
using System.Linq.Expressions;
namespace LogicBuilder.Expressions.Utils.ExpressionBuilder.DateTimeOperators
@@ -22,8 +21,8 @@ private Expression Build(Expression operandExpression)
if (operandExpression.Type != typeof(DateTimeOffset)
&& operandExpression.Type != typeof(DateTime)
&& operandExpression.Type != typeof(TimeSpan)
- && operandExpression.Type != typeof(TimeOfDay)
- && operandExpression.Type.FullName != NET6OnlyLiteralTypeNames.TIMEONLY)
+ && operandExpression.Type.FullName != UnreferencedLiteralTypeNames.TIMEOFDAY
+ && operandExpression.Type.FullName != UnreferencedLiteralTypeNames.TIMEONLY)
return operandExpression;
return Expression.Add
diff --git a/LogicBuilder.Expressions.Utils/LinqHelpers.cs b/LogicBuilder.Expressions.Utils/LinqHelpers.cs
index 6ef454d..30e1d6b 100644
--- a/LogicBuilder.Expressions.Utils/LinqHelpers.cs
+++ b/LogicBuilder.Expressions.Utils/LinqHelpers.cs
@@ -1,7 +1,6 @@
using LogicBuilder.Expressions.Utils.ExpressionBuilder;
using LogicBuilder.Expressions.Utils.ExpressionBuilder.Lambda;
using LogicBuilder.Expressions.Utils.Strutures;
-using Microsoft.OData.Edm;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -214,8 +213,8 @@ public static Expression MakeDaySelector(this Expression operandExpression)
if (operandExpression.Type == typeof(DateTime)
|| operandExpression.Type == typeof(DateTimeOffset)
- || operandExpression.Type == typeof(Date)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.DATEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.DATE
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.DATEONLY)
return operandExpression.MakeSelector("Day");
else
throw new ArgumentException(nameof(operandExpression));
@@ -227,8 +226,8 @@ public static Expression MakeMonthSelector(this Expression operandExpression)
if (operandExpression.Type == typeof(DateTime)
|| operandExpression.Type == typeof(DateTimeOffset)
- || operandExpression.Type == typeof(Date)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.DATEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.DATE
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.DATEONLY)
return operandExpression.MakeSelector("Month");
else
throw new ArgumentException(nameof(operandExpression));
@@ -240,8 +239,8 @@ public static Expression MakeYearSelector(this Expression operandExpression)
if (operandExpression.Type == typeof(DateTime)
|| operandExpression.Type == typeof(DateTimeOffset)
- || operandExpression.Type == typeof(Date)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.DATEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.DATE
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.DATEONLY)
return operandExpression.MakeSelector("Year");
else
throw new ArgumentException(nameof(operandExpression));
@@ -253,12 +252,12 @@ public static Expression MakeHourSelector(this Expression operandExpression)
if (operandExpression.Type == typeof(DateTimeOffset)
|| operandExpression.Type == typeof(DateTime)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.TIMEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEONLY)
{
return operandExpression.MakeSelector("Hour");
}
else if (operandExpression.Type == typeof(TimeSpan)
- || operandExpression.Type == typeof(TimeOfDay))
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEOFDAY)
{
return operandExpression.MakeSelector("Hours");
}
@@ -272,12 +271,12 @@ public static Expression MakeMinuteSelector(this Expression operandExpression)
if (operandExpression.Type == typeof(DateTimeOffset)
|| operandExpression.Type == typeof(DateTime)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.TIMEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEONLY)
{
return operandExpression.MakeSelector("Minute");
}
else if (operandExpression.Type == typeof(TimeSpan)
- || operandExpression.Type == typeof(TimeOfDay))
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEOFDAY)
{
return operandExpression.MakeSelector("Minutes");
}
@@ -291,12 +290,12 @@ public static Expression MakeSecondSelector(this Expression operandExpression)
if (operandExpression.Type == typeof(DateTimeOffset)
|| operandExpression.Type == typeof(DateTime)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.TIMEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEONLY)
{
return operandExpression.MakeSelector("Second");
}
else if (operandExpression.Type == typeof(TimeSpan)
- || operandExpression.Type == typeof(TimeOfDay))
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEOFDAY)
{
return operandExpression.MakeSelector("Seconds");
}
@@ -310,12 +309,12 @@ public static Expression MakeMillisecondSelector(this Expression operandExpressi
if (operandExpression.Type == typeof(DateTimeOffset)
|| operandExpression.Type == typeof(DateTime)
- || operandExpression.Type.FullName == NET6OnlyLiteralTypeNames.TIMEONLY)
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEONLY)
{
return operandExpression.MakeSelector("Millisecond");
}
else if (operandExpression.Type == typeof(TimeSpan)
- || operandExpression.Type == typeof(TimeOfDay))
+ || operandExpression.Type.FullName == UnreferencedLiteralTypeNames.TIMEOFDAY)
{
return operandExpression.MakeSelector("Milliseconds");
}
diff --git a/LogicBuilder.Expressions.Utils/LogicBuilder.Expressions.Utils.csproj b/LogicBuilder.Expressions.Utils/LogicBuilder.Expressions.Utils.csproj
index 9e29569..d1dfe21 100644
--- a/LogicBuilder.Expressions.Utils/LogicBuilder.Expressions.Utils.csproj
+++ b/LogicBuilder.Expressions.Utils/LogicBuilder.Expressions.Utils.csproj
@@ -22,14 +22,13 @@
-
+
-
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.Expressions.Utils/TypeExtensions.cs b/LogicBuilder.Expressions.Utils/TypeExtensions.cs
index 43dae73..97fe092 100644
--- a/LogicBuilder.Expressions.Utils/TypeExtensions.cs
+++ b/LogicBuilder.Expressions.Utils/TypeExtensions.cs
@@ -1,5 +1,4 @@
using LogicBuilder.Expressions.Utils.Properties;
-using Microsoft.OData.Edm;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -62,25 +61,25 @@ public static bool IsLiteralType(this Type type)
type = Nullable.GetUnderlyingType(type);
return LiteralTypes.Contains(type)
- || Net6OnlyLiteralTypes.Contains(type.FullName)
+ || UneferencedLiteralTypes.Contains(type.FullName)
|| typeof(Enum).IsAssignableFrom(type);
}
private static HashSet LiteralTypes => new HashSet(_literalTypes);
- private static readonly HashSet Net6OnlyLiteralTypes = new()
- {
- NET6OnlyLiteralTypeNames.DATEONLY,
- NET6OnlyLiteralTypeNames.TIMEONLY
- };
+ private static readonly HashSet UneferencedLiteralTypes =
+ [
+ UnreferencedLiteralTypeNames.DATEONLY,
+ UnreferencedLiteralTypeNames.TIMEONLY,
+ UnreferencedLiteralTypeNames.DATE,
+ UnreferencedLiteralTypeNames.TIMEOFDAY
+ ];
- private static Type[] _literalTypes => new Type[] {
+ private static Type[] _literalTypes => [
typeof(bool),
typeof(DateTime),
typeof(DateTimeOffset),
- typeof(Date),
typeof(TimeSpan),
- typeof(TimeOfDay),
typeof(Guid),
typeof(decimal),
typeof(byte),
@@ -95,7 +94,7 @@ public static bool IsLiteralType(this Type type)
typeof(uint),
typeof(ulong),
typeof(string)
- };
+ ];
public static Type GetMemberType(this MemberExpression me)
=> me.Member.GetMemberType();
diff --git a/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests.csproj b/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests.csproj
index dc4e09f..e4b378a 100644
--- a/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests.csproj
+++ b/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests/LogicBuilder.Kendo.ExpressionExtensions.IntegrationTests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.Kendo.ExpressionExtensions/LogicBuilder.Kendo.ExpressionExtensions.csproj b/LogicBuilder.Kendo.ExpressionExtensions/LogicBuilder.Kendo.ExpressionExtensions.csproj
index be8b239..238e64a 100644
--- a/LogicBuilder.Kendo.ExpressionExtensions/LogicBuilder.Kendo.ExpressionExtensions.csproj
+++ b/LogicBuilder.Kendo.ExpressionExtensions/LogicBuilder.Kendo.ExpressionExtensions.csproj
@@ -1,7 +1,7 @@
- netstandard2.0
+ net8.0
LogicBuilder.Kendo.ExpressionExtensions
LogicBuilder.Kendo.ExpressionExtensions
BlaiseD
@@ -22,12 +22,12 @@
-
+
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/LogicBuilder.Structures/LogicBuilder.Structures.csproj b/LogicBuilder.Structures/LogicBuilder.Structures.csproj
index b8b1c36..d05d1eb 100644
--- a/LogicBuilder.Structures/LogicBuilder.Structures.csproj
+++ b/LogicBuilder.Structures/LogicBuilder.Structures.csproj
@@ -22,11 +22,11 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive