Hello!

I believe you have to enable "Allow Overwrite":
https://apacheignite-net.readme.io/docs/data-streamers#section-allow-overwrite

Regards,
-- 
Ilya Kasnacheev


вт, 19 нояб. 2019 г. в 20:54, Manan Joshi <[email protected]>:

> I am trying to update the values of existing cache i am using IDataStremer
> to insert data in the cache, I am updating complex objects so SQL is not an
> option here is snappit of the code..
>
> Can someone suggest something it will be very helpful.
>
>  public void UpdateMetaData(CacheMetaData metaData)
>         {
>             var cache1 = CreateOrCheckMetaData(metaData);
>             var cache = cache1.WithKeepBinary<object, IBinaryObject>();
>             using (var streamer = ignite.GetDataStreamer<Guid,
> IBinaryObject>(cache.Name))
>             {
>                 streamer.RemoveData(metaData.CacheKey);
>
>                 var metaDataValueBuilder =
> ignite.GetBinary().GetBuilder(IzendaMetaData).SetGuidField("CacheKey",
> metaData.CacheKey)
>                           .SetTimestampField("CreatedDate",
> metaData.CreatedDate.ToUniversalTime())
>                           .SetStringField("Schema",
> metaData.FetchModal.Schema)
>                           .SetGuidField("ServerType",
> metaData.FetchModal.ServerType)
>                           .SetStringField("Table",
> metaData.FetchModal.Table)
>                           .SetStringField("ConnectionString",
> metaData.FetchModal.ConnectionString)
>                           .SetDictionaryField("TableFields",
> metaData.FetchModal.TableFields)
>                           .SetStringArrayField("FieldKeys",
> metaData.FetchModal.FieldKeys.ToArray());
>
>                 streamer.AddData(metaData.CacheKey,
> metaDataValueBuilder.Build());
>             }
>         }
>
>         private ICache<object, CacheMetaData>
> CreateOrCheckMetaData(CacheMetaData metaData)
>         {
>             var cacheConfiguration = new CacheConfiguration() { Name =
> IzendaMetaData };
>             if (ignite.GetCacheNames().Contains(IzendaMetaData))
>             {
>                 return ignite.GetCache<object,
> CacheMetaData>(cacheConfiguration.Name);
>             }
>             else
>             {
>                 var queryFields = new List<QueryField>();
>                 queryFields.Add(new QueryField("CreatedDate",
> metaData.CreatedDate.GetType()));
>                 queryFields.Add(new QueryField("CacheKey",
> metaData.CacheKey.GetType()));
>                 queryFields.Add(new QueryField("Table",
> metaData.FetchModal.Table.GetType()));
>                 queryFields.Add(new QueryField("Schema",
> metaData.FetchModal.Schema.GetType()));
>                 queryFields.Add(new QueryField("ConnectionString",
> metaData.FetchModal.ConnectionString.GetType()));
>                 queryFields.Add(new QueryField("FieldKeys",
> metaData.FetchModal.FieldKeys.GetType()));
>                 queryFields.Add(new QueryField("ServerType",
> metaData.FetchModal.ServerType.GetType()));
>                 queryFields.Add(new QueryField("TableFields",
> metaData.FetchModal.TableFields.GetType()));
>                 cacheConfiguration.QueryEntities = new[] { new QueryEntity
> { Fields = queryFields, ValueTypeName = IzendaMetaData, KeyType =
> typeof(IBinaryObject) } };
>                 return ignite.CreateCache<object,
> CacheMetaData>(cacheConfiguration);
>             }
>         }
>
> Thanks,
> Manan Joshi
>

Reply via email to