Search found 4 matches

by fabien.menager
Tue 27 Sep 2022 14:33
Forum: Entity Developer
Topic: Losing property name after updating model
Replies: 3
Views: 19010

Re: Losing property name after updating model

Do you have an ETA for this fix ?
by fabien.menager
Thu 19 Jul 2018 12:07
Forum: Entity Framework support
Topic: Entity Framework DbFunction and NotParameterized attribute on Oracle
Replies: 5
Views: 4122

Re: Entity Framework DbFunction and NotParameterized attribute on Oracle

I saw you released a new version of the NuGET package, it works fine, thank you very much ! \o/

https://www.nuget.org/packages/Devart.Data.Oracle/
by fabien.menager
Mon 25 Jun 2018 14:51
Forum: Entity Framework support
Topic: Entity Framework DbFunction and NotParameterized attribute on Oracle
Replies: 5
Views: 4122

Entity Framework DbFunction and NotParameterized attribute on Oracle

Hello, I have an extension to my ModelBuilder declaring a DB function (JSON_VALUE) which allows the use of JSON_VALUE in Entity Framework :

Code: Select all

using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json.Linq;

namespace Lib.Extensions
{
    public static class EfExtensions
    {
        /// <summary>
        ///     JSON_VALUE function for EF
        ///     https://github.com/aspnet/EntityFrameworkCore/issues/11295#issuecomment-373852015
        /// </summary>
        public static string JsonValue(string column, [NotParameterized] string path)
        {
		// C# implementation, not important for the current issue
        }

        /// <summary>
        ///     Adds support for JSON_VALUE inside EF queries on this DB context
        /// </summary>
        /// <example>
        ///     query.Where(_ => _.Reference != null && EfExtensions.JsonValue(_.Reference, $"$.{key}") == value)
        /// </example>
        public static void AddJsonValue(ModelBuilder bld)
        {
            bld.HasDbFunction(typeof(EfExtensions).GetMethod(nameof(JsonValue)))
                .HasName("JSON_VALUE")
                .HasSchema("");
        }
    }
}
I use the latest NuGet package (Devart.Data.Oracle v9.6.540)

My problem is that it works on SQL Server, where EF generates this kind of SQL :

Code: Select all

	WHERE (JSON_VALUE("_".REFERENCE, N'$.AffaireId') = @p__ToString_0))
while I get this on Oracle :

Code: Select all

	WHERE (JSON_VALUE("_".REFERENCE, $.AffaireId) = :p__ToString_0))
Which gives me a "ORA-00911: invalid character", because the $.AffaireId is not encapsulated by quotes.

What am I missing ?