I'm getting System.NullReferenceException when trying to save changes, using .net core 3.0.0 console project, even with basic implementation.
Code: Select all
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
string connectionString = @"User ID=****;Password=***;Host=****;Service Name=***;Port=1521;Direct=True;;License Key=***";
ServiceCollection sc = new ServiceCollection();
sc.AddDbContext<AppDbContext>(f =>
f.EnableDetailedErrors()
.UseOracle(connectionString)
);
using (var sp = sc.BuildServiceProvider())
using (var scope = sp.CreateScope())
using (var context = scope.ServiceProvider.GetRequiredService<AppDbContext>())
{
var b = new Language();
b.Name = System.Guid.NewGuid().ToString();
b.Code = System.Guid.NewGuid().ToString();
context.Languages.Add(b);
context.SaveChanges();
}
}
}
public class Language
{
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
}
public class AppDbContext : DbContext
{
public DbSet<Language> Languages { get; set; }
public AppDbContext(
DbContextOptions<AppDbContext> options
) : base(options)
{
}
}
Project
Code: Select all
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Devart.Data.Oracle.EFCore" Version="9.9.887" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.0.1" />
</ItemGroup>
</Project>
Code: Select all
at Microsoft.EntityFrameworkCore.Metadata.Internal.Property.OnAnnotationSet(String name, IConventionAnnotation annotation, IConventionAnnotation oldAnnotation)
at Microsoft.EntityFrameworkCore.Metadata.Internal.ConventionAnnotatable.OnAnnotationSet(String name, Annotation annotation, Annotation oldAnnotation)
at Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.SetAnnotation(String name, Annotation annotation, Annotation oldAnnotation)
at Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.AddAnnotation(String name, Annotation annotation)
at Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.AddAnnotation(String name, Object value)
at Devart.Data.Oracle.Entity.ai..ctor(IPropertyBase A_0)
at Devart.Data.Oracle.Entity.ag.a(StringBuilder A_0, ModificationCommand A_1, String A_2, w A_3)
at Devart.Data.Oracle.Entity.ag.AppendInsertOperation(StringBuilder commandText, ModificationCommand command, Int32 commandPosition)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.UpdateCachedCommandText(Int32 commandPosition)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.GetCommandText()
at Devart.Common.Entity.cp.CreateStoreCommand()
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(DbContext _, ValueTuple`2 parameters)
at Microsoft.EntityFrameworkCore.Storage.Internal.NoopExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection)
at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess)
at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess)
at Microsoft.EntityFrameworkCore.DbContext.SaveChanges()