[
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)