Pavel Tupitsyn created IGNITE-3630:
-------------------------------------- Summary: .NET: Add pure binary mode example with SQL Key: IGNITE-3630 URL: https://issues.apache.org/jira/browse/IGNITE-3630 Project: Ignite Issue Type: Improvement Components: platforms Reporter: Pavel Tupitsyn Fix For: 1.8 This is an important Ignite use case: having no classes at all, working with cache in binary mode and running SQL queries. Below is a piece of code that I used for Gitter user question: {code} using (var ignite = Ignition.Start()) { // Configure queries for Person object with FirstName, LastName fields var cacheConfig = new CacheConfiguration { Name = "persons", // can be anything QueryEntities = new[] { new QueryEntity { KeyType = typeof(int), ValueTypeName = "Person", // name of the dynamically created type Fields = new[] // define fields to be available in queries { new QueryField("FirstName", typeof(string)), new QueryField("LastName", typeof(string)) } } } }; // Create new cache, switch to binary mode var cache = ignite.CreateCache<int, object>(cacheConfig).WithKeepBinary<int, IBinaryObject>(); // Populate the cache for (var i = 0; i < 10; i++) { var person = ignite.GetBinary().GetBuilder("Person") // same name as in ValueTypeName above .SetField<string>("FirstName", "Name-" + i) .SetField<string>("LastName", "LastName-" + i) .Build(); cache[i] = person; } // SQL query for FirstName ending with "-3" var qry = cache.Query(new SqlQuery("Person", "where FirstName like '%-3'")); foreach (ICacheEntry<int, IBinaryObject> cacheEntry in qry) { Console.WriteLine("Person {0}:", cacheEntry.Key); IBinaryObject person = cacheEntry.Value; IBinaryType personType = person.GetBinaryType(); // Show all fields foreach (var fieldName in personType.Fields) Console.WriteLine(" {0}: {1}", fieldName, person.GetField<object>(fieldName)); } } {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) |
Free forum by Nabble | Edit this page |