Skip to content

Commit addf0b4

Browse files
author
Maxim Voronov
committed
.net 5.0
1 parent a4cb2a0 commit addf0b4

File tree

13 files changed

+50
-60
lines changed

13 files changed

+50
-60
lines changed

NuGet.config

Lines changed: 0 additions & 10 deletions
This file was deleted.

dependencies.props

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
<Project>
22
<PropertyGroup>
3-
<ComponentModelAnnotations>4.7.0</ComponentModelAnnotations>
4-
<CoreFxVersion>4.7.2</CoreFxVersion>
3+
<ComponentModelAnnotations>5.0.0</ComponentModelAnnotations>
4+
<CoreFxVersion>5.0.0</CoreFxVersion>
55
<CSharpVersion>8.0</CSharpVersion>
6-
<EfCoreVersion>5.0.0-*</EfCoreVersion>
6+
<EfCoreVersion>5.0.0</EfCoreVersion>
77
<FrameworkVersion>net48</FrameworkVersion>
88
<JsonNetVersion>12.0.3</JsonNetVersion>
99
<NetStandardVersion>net5.0</NetStandardVersion>
1010
<NetCoreAppVersion>net5.0</NetCoreAppVersion>
11-
<NetCoreVersion>3.1.8</NetCoreVersion>
11+
<NetCoreVersion>5.0.0</NetCoreVersion>
1212
<NpgsqlVersion>5.0.0-*</NpgsqlVersion>
13-
<ODataLibVersion>7.7.2</ODataLibVersion>
14-
<OdataToEntityVersion>2.5.0</OdataToEntityVersion>
15-
<SystemInteractiveAsyncVersion>4.1.1</SystemInteractiveAsyncVersion>
16-
<TestSdkVersion>16.7.1</TestSdkVersion>
13+
<ODataLibVersion>7.7.3</ODataLibVersion>
14+
<OdataToEntityVersion>2.6.0</OdataToEntityVersion>
15+
<SystemInteractiveAsyncVersion>5.0.0</SystemInteractiveAsyncVersion>
16+
<TestSdkVersion>16.8.0</TestSdkVersion>
1717
<Version>$(OdataToEntityVersion)</Version>
1818
<XunitVersion>2.4.1</XunitVersion>
1919
</PropertyGroup>

source/OdataToEntity.AspNetCore/OeDataContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System;
99
using System.Collections.Generic;
1010
using System.Reflection;
11-
using System.Security.Permissions;
1211
using System.Threading.Tasks;
1312

1413
namespace OdataToEntity.AspNetCore

source/OdataToEntity.EfCore.DynamicDataContext/ModelBuilder/DynamicModelBuilder.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using Microsoft.EntityFrameworkCore.Metadata;
44
using Microsoft.EntityFrameworkCore.Metadata.Builders;
55
using Microsoft.EntityFrameworkCore.Metadata.Internal;
6-
using OdataToEntity.EfCore.DynamicDataContext.Types;
76
using System;
87
using System.Collections.Generic;
98
using System.ComponentModel.DataAnnotations.Schema;
@@ -133,13 +132,13 @@ private void CreateNavigationProperties(Microsoft.EntityFrameworkCore.ModelBuild
133132
}
134133
}
135134
}
136-
private static Func<DynamicType, bool> GetDefaultValueFunc(IPropertyBase propertyBase)
135+
private static Delegate GetDefaultValueFunc(IProperty property)
137136
{
138-
ParameterExpression parameterExpression = Expression.Parameter(typeof(DynamicType));
139-
Expression expression = PropertyBase.CreateMemberAccess(propertyBase, parameterExpression, propertyBase.PropertyInfo);
140-
expression = Expression.Convert(expression, propertyBase.ClrType);
141-
expression = expression.MakeHasDefaultValue(propertyBase);
142-
return Expression.Lambda<Func<DynamicType, bool>>(expression, new[] { parameterExpression }).Compile();
137+
ParameterExpression parameterExpression = Expression.Parameter(property.DeclaringEntityType.ClrType);
138+
Expression expression = PropertyBase.CreateMemberAccess(property, parameterExpression, property.PropertyInfo);
139+
expression = Expression.Convert(expression, property.ClrType);
140+
expression = expression.MakeHasDefaultValue(property);
141+
return Expression.Lambda(expression, new[] { parameterExpression }).Compile();
143142
}
144143

145144
public DynamicMetadataProvider MetadataProvider { get; }

source/OdataToEntity.EfCore/OeEfCoreDataAdapter.cs

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -82,21 +82,17 @@ public override void AddEntity(Object dataContext, ODataResourceBase entry)
8282
{
8383
var context = (DbContext)dataContext;
8484
EntityEntry<TEntity> entityEntry = context.Add(CreateEntity(context, entry));
85-
InternalEntityEntry internalEntry = entityEntry.GetInfrastructure();
86-
AddInstanceAnnotation(entry, internalEntry);
85+
AddInstanceAnnotation(entry, entityEntry);
8786

8887
IReadOnlyList<IProperty> keyProperties = _entityType.FindPrimaryKey().Properties;
8988
for (int i = 0; i < keyProperties.Count; i++)
9089
if (keyProperties[i].ValueGenerated == ValueGenerated.OnAdd)
91-
{
92-
Object value = internalEntry.GetCurrentValue(keyProperties[i]);
93-
internalEntry.SetTemporaryValue(keyProperties[i], value, false);
94-
}
90+
entityEntry.Property(keyProperties[i].Name).IsTemporary = true;
9591
}
96-
private static void AddInstanceAnnotation(ODataResourceBase entry, InternalEntityEntry internalEntityEntry)
92+
private static void AddInstanceAnnotation(ODataResourceBase entry, EntityEntry entityEntry)
9793
{
98-
entry.InstanceAnnotations.Add(new ODataInstanceAnnotation("ef.InternalEntityEntryValue",
99-
new Infrastructure.OeOdataValue<InternalEntityEntry>(internalEntityEntry)));
94+
var odataValue = new Infrastructure.OeOdataValue<EntityEntry>(entityEntry);
95+
entry.InstanceAnnotations.Add(new ODataInstanceAnnotation("ef.EntityEntryValue", odataValue));
10096
}
10197
public override void AttachEntity(Object dataContext, ODataResourceBase entry)
10298
{
@@ -105,15 +101,15 @@ public override void AttachEntity(Object dataContext, ODataResourceBase entry)
105101
if (internalEntry == null)
106102
{
107103
TEntity entity = CreateEntity(context, entry);
108-
internalEntry = context.Attach(entity).GetInfrastructure();
109-
AddInstanceAnnotation(entry, internalEntry);
104+
EntityEntry entityEntry = context.Attach(entity);
105+
AddInstanceAnnotation(entry, entityEntry);
110106

111-
IKey key = _entityType.FindPrimaryKey();
107+
IReadOnlyList<IProperty> keyProperties = _entityType.FindPrimaryKey().Properties;
112108
foreach (ODataProperty odataProperty in entry.Properties)
113109
{
114110
IProperty property = _entityType.FindProperty(odataProperty.Name);
115-
if (!key.Properties.Contains(property))
116-
internalEntry.SetPropertyModified(property);
111+
if (!keyProperties.Contains(property))
112+
entityEntry.Property(property.Name).IsModified = true;
117113
}
118114
}
119115
else
@@ -168,11 +164,11 @@ private InternalEntityEntry GetEntityEntry(T context, ODataResourceBase entity)
168164
}
169165
private Object[] GetKeyValues(ODataResourceBase entity)
170166
{
171-
IKey key = _entityType.FindPrimaryKey();
172-
var keyValues = new Object[key.Properties.Count];
167+
IReadOnlyList<IProperty> keyProperties = _entityType.FindPrimaryKey().Properties;
168+
var keyValues = new Object[keyProperties.Count];
173169
for (int i = 0; i < keyValues.Length; i++)
174170
{
175-
String keyName = key.Properties[i].Name;
171+
String keyName = keyProperties[i].Name;
176172
foreach (ODataProperty odataProperty in entity.Properties)
177173
if (String.Compare(odataProperty.Name, keyName, StringComparison.OrdinalIgnoreCase) == 0)
178174
{
@@ -232,12 +228,12 @@ public override void RemoveEntity(Object dataContext, ODataResourceBase entry)
232228
public override void UpdateEntityAfterSave(Object dataContext, ODataResourceBase resource)
233229
{
234230
foreach (ODataInstanceAnnotation instanceAnnotation in resource.InstanceAnnotations)
235-
if (instanceAnnotation.Value is Infrastructure.OeOdataValue<InternalEntityEntry> internalEntry)
231+
if (instanceAnnotation.Value is Infrastructure.OeOdataValue<EntityEntry> entityEntry)
236232
{
237-
PropertyValues propertyValues = internalEntry.Value.ToEntityEntry().CurrentValues;
233+
PropertyValues propertyValues = entityEntry.Value.CurrentValues;
238234
foreach (ODataProperty odataProperty in resource.Properties)
239235
{
240-
IProperty property = internalEntry.Value.EntityType.FindProperty(odataProperty.Name);
236+
IProperty property = entityEntry.Value.Property(odataProperty.Name).Metadata;
241237
if (property.ValueGenerated != ValueGenerated.Never || property.IsForeignKey())
242238
odataProperty.Value = OeEdmClrHelper.CreateODataValue(propertyValues[property]);
243239
}

source/OdataToEntity.GraphQL/OdataToEntity.GraphQL.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
</PropertyGroup>
2828

2929
<ItemGroup>
30-
<PackageReference Include="GraphQL" Version="3.0.0.*" />
30+
<PackageReference Include="GraphQL" Version="3.1.3" />
3131
</ItemGroup>
3232

3333
<ItemGroup>

source/OdataToEntity.GraphQL/OeGraphTypeBuilder.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,21 @@ private QueryArgument[] CreateQueryArguments(Type entityType, bool onlyStructura
9797
{
9898
if (fieldType.Type == null)
9999
{
100+
String name;
100101
IGraphType resolvedType = fieldType.ResolvedType;
101102
if (resolvedType is NonNullGraphType nonNullGraphType)
103+
{
102104
resolvedType = nonNullGraphType.ResolvedType;
105+
name = resolvedType.Name;
106+
}
107+
else if (resolvedType is ListGraphType listGraphType)
108+
name = listGraphType.ResolvedType.Name;
109+
else
110+
name = resolvedType.Name;
103111

104112
Type inputObjectGraphType = typeof(InputObjectGraphType<>).MakeGenericType(resolvedType.GetType());
105113
var inputObjectGraph = (IInputObjectGraphType)Activator.CreateInstance(inputObjectGraphType)!;
106-
queryArgument = new QueryArgument(inputObjectGraphType) { Name = resolvedType.Name, ResolvedType = inputObjectGraph };
114+
queryArgument = new QueryArgument(inputObjectGraphType) { Name = name, ResolvedType = inputObjectGraph };
107115
}
108116
else
109117
{

source/OdataToEntity/Parsers/OePropertyAccessor.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ public readonly struct OePropertyAccessor
1515
{
1616
private readonly int _hashCode;
1717
private readonly MemberInfo[] _propertyInfos;
18-
public static readonly PropertyExpressionKey Comparer = new PropertyExpressionKey();
1918

2019
private PropertyExpressionKey(MemberInfo[] memberInfos, int hashCode)
2120
{

test/OdataToEntity.Test.GraphQL/OdataToEntity.Test.GraphQL.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
</ItemGroup>
2121

2222
<ItemGroup>
23-
<PackageReference Include="GraphQL" Version="3.0.0.*" />
24-
<PackageReference Include="GraphQL.NewtonsoftJson" Version="3.0.0.*" />
23+
<PackageReference Include="GraphQL" Version="3.1.3" />
24+
<PackageReference Include="GraphQL.NewtonsoftJson" Version="3.1.3" />
2525
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="$(EfCoreVersion)" />
2626
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(EfCoreVersion)" />
2727
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(TestSdkVersion)" />

test/OdataToEntity.Test.Linq2Db/OdataToEntity.Test.Linq2Db.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
</PropertyGroup>
2323

2424
<ItemGroup>
25-
<PackageReference Include="linq2db" Version="3.1.4" />
26-
<PackageReference Include="linq2db.SqlServer" Version="3.1.4" />
25+
<PackageReference Include="linq2db" Version="3.1.6" />
26+
<PackageReference Include="linq2db.SqlServer" Version="3.1.6" />
2727
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="$(EfCoreVersion)" />
2828
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(EfCoreVersion)" />
2929
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(TestSdkVersion)" />

0 commit comments

Comments
 (0)