You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Tupitsyn (JIRA)" <ji...@apache.org> on 2016/08/08 14:01:20 UTC
[jira] [Commented] (IGNITE-3630) .NET: Add pure binary mode example
with SQL
[ https://issues.apache.org/jira/browse/IGNITE-3630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15411838#comment-15411838 ]
Pavel Tupitsyn commented on IGNITE-3630:
----------------------------------------
BinaryModeExample added,.
> .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
> Assignee: Pavel Tupitsyn
> Labels: .net
> 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.
> We should have a dedicated example for this (regular one and for LINQPad).
> 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)