You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Robert May (Jira)" <ji...@apache.org> on 2021/06/19 00:30:00 UTC

[jira] [Updated] (IGNITE-14947) QuerySqlFieldAttribute isn't honored when writing records in the c# dotnet client

     [ https://issues.apache.org/jira/browse/IGNITE-14947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert May updated IGNITE-14947:
--------------------------------
    Summary: QuerySqlFieldAttribute isn't honored when writing records in the c# dotnet client  (was: QuerySqlFieldAttribute isn't honored when writing records)

> QuerySqlFieldAttribute isn't honored when writing records in the c# dotnet client
> ---------------------------------------------------------------------------------
>
>                 Key: IGNITE-14947
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14947
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms, sql, thin client
>    Affects Versions: 2.10, 2.9.1
>            Reporter: Robert May
>            Priority: Minor
>
> Consider the following POCO:
> {code:c#}
> public class MyPoco
> {
>     [QuerySqlField(indexed = true)
>     public string Value1 { get; set; }
>     [QuerySqlField(Name = "Different")
>     public string Value2 { get; set; }
> }
> {code}
> When used in the query entities to create the cache and the sql table, the attribute is correctly honored and a table will be created with fields Value1 and Different.
> However, when you call 
> {code:c#}
>     var pocoInstance = new MyPoco() { Value1 = "1", Value2 = "2" }
>     cache.Put("mykey", pocoInstance);
> {code}
> The value in Value2 will not be written into the cache.
> This happens because when BinaryReflectiveSerializerInternal.Register is called for the type, it only considers the field names (and auto property field names) on the type, but never looks for the QuerySqlField attribute to see if the field has been renamed.
> This will mean looking at the properties as well as the fields for attributes in the Register method to determine renames.
> Note that this works as expected in the java client.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)