*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/