[Key] attribute is not recognized by Ignite, you should set QueryEntity.KeyFieldName = "EntityId".
This is a good catch, by the way - I've filed a ticket: https://issues.apache.org/jira/browse/IGNITE-12532 On Mon, Jan 13, 2020 at 5:32 PM siva <siva.ka...@bizruntime.com> wrote: > *Step-1:Model class* > --------------------------------- > namespace Models.Ignite > { > public class ENTITIESTABLEINFO : ICustomCacheStore > { > [QuerySqlField] > [Key] > public String EntityId { get; set; } > [QuerySqlField] > public String EntityType { get; set; } > [QuerySqlField] > public String EntityInfoJson { get; set; } > [QuerySqlField] > public String TenantName { get; set; } > [QuerySqlField] > public String TenantId { get; set; } > [QuerySqlField] > public String Fabric { get; set; } > [QuerySqlField] > public String EntityName { get; set; } > [QuerySqlField] > public double SequenceNumber { get; set; } > } > } > > > > > *Step-2:Create Cache,table and indexes:* > -------------------------------------- > using Models.Ignite.ENTITIESTABLEINFO; > > //create indexes > struct QueryEntityIndexFields > { > public string[] PrimaryKeys; > public Type ModelType; > //public string QueryIndexType; > } > private static readonly string[] indexFieldOfEntityId = new[] { "EntityId" > }; > private static readonly QueryEntityIndexFields[] prodModels = new[] { > //fdc models > new QueryEntityIndexFields(){PrimaryKeys=indexFieldOfEntityId, > ModelType= typeof(ENTITIESTABLEINFO)} > } > > private async Task<List<QueryEntity>> > GetQueryEntitiesBasedOnCapability(QueryEntityIndexFields[] > queryEntityIndexFieldsList) > { > List<QueryEntity> queryList = new List<QueryEntity>(); > foreach (var modelObject in queryEntityIndexFieldsList) > { > var query = new QueryEntity(typeof(string), > modelObject.ModelType) > { > Indexes = new > List<QueryIndex>(modelObject.PrimaryKeys.Count() + 1) > { > new QueryIndex(true,0,modelObject.PrimaryKeys) > } > }; > queryList.Add(query); > } > return queryList; > } > var queryList = await > _queryEntities.CreateQueryEntitiesListAsync(capabilityName); > > > //Cache configuration > cacheCfg = new CacheConfiguration(cacheName) > { > Name = cacheName, > CacheStoreFactory = new TenantCacheStoreFactory(_logger, > connectionString), > KeepBinaryInStore = false, // Cache store works with deserialized > data. > ReadThrough = true, > WriteThrough = true, > WriteBehindEnabled = true, > QueryEntities = queryList, > WriteBehindFlushThreadCount = 2, > CacheMode = CacheMode.Partitioned, > Backups = 0, > DataRegionName = "IgniteDataRegion", > EvictionPolicy = new LruEvictionPolicy > { > MaxSize = 100000 > } > }; > > Ignite.AddCacheConfiguration(cacheCfg); > // Create cache with given name, if it does not exist. > ICache<KeyModel, ICustomCacheStore> cache = > Ignite.GetOrCreateCache<KeyModel, ICustomCacheStore>(cacheCfg); > > where cacheName is "C091E548-B45A-49B4-B8EC-2CB5E27C7AF6"; > * > Step-3:Insert Statement:* > ------------------------- > INSERT INTO > > "C091E548-B45A-49B4-B8EC-2CB5E27C7AF6".ENTITIESTABLEINFO(EntityId,EntityInfoJson,EntityName,EntityType,Fabric,SequenceNumber,TenantId,TenantName) > VALUES ('0-pulsar', '{}', 'Testing Topic0 Name', 'testpulsarType', > 'pulsarFabric', 0.0, 'pulsar-123-tenantid', 'pulsar-tenantName'); > > onces insert statement execute get before mention exception. > Anything else required,please let me know. > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >