<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>raptordb Discussions Rss Feed</title><link>https://raptordb.codeplex.com/discussions</link><description>raptordb Discussions Rss Description</description><item><title>New Post: Mono support?</title><link>http://raptordb.codeplex.com/discussions/444047</link><description>&lt;div style="line-height: normal;"&gt;I will look into testing on Mono soon.&lt;br /&gt;
&lt;br /&gt;
The only thing we need now is some marketing... :)&lt;br /&gt;
&lt;/div&gt;</description><author>MGholam</author><pubDate>Fri, 17 May 2013 16:00:25 GMT</pubDate><guid isPermaLink="false">New Post: Mono support? 20130517040025P</guid></item><item><title>New Post: Mono support?</title><link>http://raptordb.codeplex.com/discussions/444047</link><description>&lt;div style="line-height: normal;"&gt;I don't know if you know this but RaptorDB is the only embedded database I could find that was&lt;br /&gt;
close to MongoDB (document store) and worked with .NET. If you could add crossplatform to&lt;br /&gt;
the list of features I think you have a real winner here.&lt;br /&gt;
&lt;/div&gt;</description><author>dvela1</author><pubDate>Fri, 17 May 2013 15:22:05 GMT</pubDate><guid isPermaLink="false">New Post: Mono support? 20130517032205P</guid></item><item><title>New Post: Mono support?</title><link>http://raptordb.codeplex.com/discussions/444047</link><description>&lt;div style="line-height: normal;"&gt;The pinvoke is easy to fix (there are a couple of MemCmp routines in the Helper class.&lt;br /&gt;
&lt;br /&gt;
The others seem to be related to mono (RaptorDB requires .net4+ so the mono version should be a compatible one).&lt;br /&gt;
&lt;/div&gt;</description><author>MGholam</author><pubDate>Fri, 17 May 2013 14:09:28 GMT</pubDate><guid isPermaLink="false">New Post: Mono support? 20130517020928P</guid></item><item><title>New Post: Mono support?</title><link>http://raptordb.codeplex.com/discussions/444047</link><description>&lt;div style="line-height: normal;"&gt;This is the report Mono's Moma kicked out.&lt;br /&gt;
&lt;a href="https://docs.google.com/file/d/0BzdZbc0bAt2OQW5MNUxpUkV2Qkk/edit?usp=sharing" rel="nofollow"&gt;https://docs.google.com/file/d/0BzdZbc0bAt2OQW5MNUxpUkV2Qkk/edit?usp=sharing&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>dvela1</author><pubDate>Fri, 17 May 2013 13:40:00 GMT</pubDate><guid isPermaLink="false">New Post: Mono support? 20130517014000P</guid></item><item><title>New Post: Mono support?</title><link>http://raptordb.codeplex.com/discussions/444047</link><description>&lt;div style="line-height: normal;"&gt;I have tested it on MonoDroid and an Android tablet, and it worked.&lt;br /&gt;
&lt;br /&gt;
Send me the list of the offensive methods, and I will look into it.&lt;br /&gt;
&lt;/div&gt;</description><author>MGholam</author><pubDate>Fri, 17 May 2013 13:31:18 GMT</pubDate><guid isPermaLink="false">New Post: Mono support? 20130517013118P</guid></item><item><title>New Post: Mono support?</title><link>http://raptordb.codeplex.com/discussions/444047</link><description>&lt;div style="line-height: normal;"&gt;I ran the RaptorDB dll through Mono's MoMa Analyzer and it looks like it has 1 P/Invoke called and a couple methods that don't exist in Mono. Is there any plans to get it working in Mono?&lt;br /&gt;
&lt;/div&gt;</description><author>dvela1</author><pubDate>Fri, 17 May 2013 13:23:07 GMT</pubDate><guid isPermaLink="false">New Post: Mono support? 20130517012307P</guid></item><item><title>New Post: Do you have to register a view?</title><link>http://raptordb.codeplex.com/discussions/443631</link><description>&lt;div style="line-height: normal;"&gt;Yes, you do have to register a view, this is by design.&lt;br /&gt;
&lt;br /&gt;
You can register by code for embedded mode or automatically by attribute and DLL in the Extensions folder in server mode, the samples are in the distribution. &lt;br /&gt;
&lt;/div&gt;</description><author>MGholam</author><pubDate>Wed, 15 May 2013 04:00:15 GMT</pubDate><guid isPermaLink="false">New Post: Do you have to register a view? 20130515040015A</guid></item><item><title>New Post: Do you have to register a view?</title><link>http://raptordb.codeplex.com/discussions/443631</link><description>&lt;div style="line-height: normal;"&gt;This is the code I use to add data.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;Guid id = Guid.Parse(&amp;quot;DAC536BA-D749-4D18-9709-69DE6D2F8039&amp;quot;);
RaptorDB.RaptorDB rap = RaptorDB.RaptorDB.Open(&amp;quot;RaptorDB&amp;quot;);
rap.Save&amp;lt;Test&amp;gt;(id, new Test() { name = &amp;quot;donny&amp;quot;, stamp = DateTime.Now });&lt;/code&gt;&lt;/pre&gt;

Is there anyway to query without registering a view?&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;var result = rap.Query&amp;lt;Test&amp;gt;([Asking for viewname], t =&amp;gt; t.id == id);&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;</description><author>dvela1</author><pubDate>Tue, 14 May 2013 18:28:00 GMT</pubDate><guid isPermaLink="false">New Post: Do you have to register a view? 20130514062800P</guid></item><item><title>New Post: "The Key Value Store V2" and "  RaptorDB - the Document Store"</title><link>http://raptordb.codeplex.com/discussions/428944</link><description>&lt;div style="line-height: normal;"&gt;Raptor Key Value store is just that, persistent and fast dictionary, the document store is  just that as well, database that stores documents, more like mongo and raven. It provides a richer set query operations and the like, and takes care of object serialisation for you. The KV store does not, values are either strings or byte arrays. I think the Document store is built on top of the KV store or parts of it at least.&lt;br /&gt;
&lt;/div&gt;</description><author>theperm</author><pubDate>Thu, 21 Feb 2013 21:16:42 GMT</pubDate><guid isPermaLink="false">New Post: "The Key Value Store V2" and "  RaptorDB - the Document Store" 20130221091642P</guid></item><item><title>New Post: "The Key Value Store V2" and "  RaptorDB - the Document Store"</title><link>http://raptordb.codeplex.com/discussions/428944</link><description>&lt;div style="line-height: normal;"&gt;
&lt;h1 id="ctl00_ArticleTitle"&gt;I found &amp;quot;&lt;/h1&gt;
&lt;h1 id="ctl00_ArticleTitle"&gt;RaptorDB-The Key Value Store V2&amp;quot; and &amp;quot;&lt;/h1&gt;
&lt;h1 id="ctl00_ArticleTitle"&gt;RaptorDB - the Document Store&amp;quot;,&lt;/h1&gt;
&lt;p&gt;what is the diffrence？&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;
&lt;/div&gt;</description><author>xuanhun</author><pubDate>Wed, 09 Jan 2013 02:44:03 GMT</pubDate><guid isPermaLink="false">New Post: "The Key Value Store V2" and "  RaptorDB - the Document Store" 20130109024403A</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;This is my latest implementation. &amp;nbsp;I changed it a little to make it nicer to use and fit more with your design of the rest of the system.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; View&amp;lt;T&amp;gt; : ViewBase
    {
        &lt;span style="color:blue"&gt;public&lt;/span&gt; List&amp;lt;Type&amp;gt; AdditionalSchemaTypes { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;delegate&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; MapFunctionDelgate&amp;lt;V&amp;gt;(IMapAPI api, Guid docid, V doc);
        &lt;span style="color:blue"&gt;public&lt;/span&gt; View()
        {
            isActive = &lt;span style="color:blue"&gt;true&lt;/span&gt;;
            FireOnTypes = &lt;span style="color:blue"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;string&lt;/span&gt;&amp;gt;();
            DeleteBeforeInsert = &lt;span style="color:blue"&gt;true&lt;/span&gt;;
            BackgroundIndexing = &lt;span style="color:blue"&gt;true&lt;/span&gt;;
            &lt;span style="color:green"&gt;//AllowTransactions = false;&lt;/span&gt;
            AdditionalSchemaTypes = &lt;span style="color:blue"&gt;new&lt;/span&gt; List&amp;lt;Type&amp;gt;();
        }

        &lt;span style="color:gray"&gt;///&lt;/span&gt; &lt;span style="color:gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:gray"&gt;///&lt;/span&gt;&lt;span style="color:green"&gt; Inline delegate for the mapper function used for quick applications &lt;/span&gt;
        &lt;span style="color:gray"&gt;///&lt;/span&gt; &lt;span style="color:gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        [XmlIgnore]
        &lt;span style="color:blue"&gt;public&lt;/span&gt; MapFunctionDelgate&amp;lt;T&amp;gt; Mapper { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }

        &lt;span style="color:blue"&gt;public&lt;/span&gt; Result&amp;lt;&lt;span style="color:blue"&gt;object&lt;/span&gt;&amp;gt; Verify()
        {
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (Name == &lt;span style="color:blue"&gt;null&lt;/span&gt; || Name == &lt;span style="color:#a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#a31515"&gt;&amp;quot;Name must be given&amp;quot;&lt;/span&gt;);
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (Schema == &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#a31515"&gt;&amp;quot;Schema must be defined&amp;quot;&lt;/span&gt;);
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (Schema.IsSubclassOf(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(RDBSchema)) == &lt;span style="color:blue"&gt;false&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#a31515"&gt;&amp;quot;The schema must be derived from RaptorDB.RDBSchema&amp;quot;&lt;/span&gt;);
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (Mapper == &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#a31515"&gt;&amp;quot;A map function must be defined&amp;quot;&lt;/span&gt;);
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (FireOnTypes.Count == 0) 
                &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#a31515"&gt;&amp;quot;No types have been defined to fire on&amp;quot;&lt;/span&gt;);
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (TransactionMode == &lt;span style="color:blue"&gt;true&lt;/span&gt; &amp;amp;&amp;amp; isPrimaryList == &lt;span style="color:blue"&gt;false&lt;/span&gt;)
                &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#a31515"&gt;&amp;quot;Transaction mode can only be enabled on Primary Views&amp;quot;&lt;/span&gt;);

            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Type type in AdditionalSchemaTypes)
            {
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (!type.IsAssignableFrom(Schema))
                {
                    &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515"&gt;&amp;quot;Type {0} is not inherited by {1} and therefore cannot be added to AdditionalSchemaTypes&amp;quot;&lt;/span&gt;, type, Schema));
                }
            }
            &lt;span style="color:green"&gt;// FEATURE : add more verifications&lt;/span&gt;
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Result&amp;lt;&lt;span style="color:blue"&gt;object&lt;/span&gt;&amp;gt;(&lt;span style="color:blue"&gt;true&lt;/span&gt;);
        }
    }


&lt;span style="color:green"&gt;//next part is a method from View Manager that i updated&lt;/span&gt;
&lt;span style="color:blue"&gt;internal&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; RegisterView&amp;lt;T&amp;gt;(View&amp;lt;T&amp;gt; view)
        {
            view.Verify();

            ViewHandler vh = &lt;span style="color:blue"&gt;null&lt;/span&gt;;
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (_views.TryGetValue(view.Name.ToLower(), &lt;span style="color:blue"&gt;out&lt;/span&gt; vh))
            {
                _log.Error(&lt;span style="color:#a31515"&gt;&amp;quot;View already added and exists : &amp;quot;&lt;/span&gt; &amp;#43; view.Name);
                &lt;span style="color:green"&gt;//vh.RebuildExisting(_objectStore, view);&lt;/span&gt;
            }
            &lt;span style="color:blue"&gt;else&lt;/span&gt;
            {
                vh = &lt;span style="color:blue"&gt;new&lt;/span&gt; ViewHandler(_Path, &lt;span style="color:blue"&gt;this&lt;/span&gt;);
                vh.SetView(view , _objectStore);
                _views.Add(view.Name.ToLower(), vh);
                _otherViewTypes.Add(view.GetType(), view.Name.ToLower());

                &lt;span style="color:green"&gt;// add view schema mapping &lt;/span&gt;
                _otherViewTypes.Add(view.Schema, view.Name.ToLower());
&lt;span style="white-space:pre"&gt;		&lt;/span&gt;&lt;span style="color:#ff0000"&gt;//------- start of my change&lt;/span&gt;
                &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Type type &lt;span style="color:blue"&gt;in&lt;/span&gt; view.AdditionalSchemaTypes)
                {
                    _otherViewTypes.Add(type, view.Name.ToLower());
                }
&lt;span style="white-space:pre"&gt;		&lt;/span&gt;&lt;span style="color:#ff0000"&gt;//---- end of my change&lt;/span&gt;

                &lt;span style="color:green"&gt;//_viewAQFNmapping.Add(view.GetType().AssemblyQualifiedName, view.Name.ToLower());&lt;/span&gt;
                &lt;span style="color:green"&gt;//_viewAQFNmapping.Add(view.Schema.AssemblyQualifiedName, view.Name.ToLower());&lt;/span&gt;

                &lt;span style="color:blue"&gt;if&lt;/span&gt; (view.isPrimaryList)
                {
                    &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue"&gt;string&lt;/span&gt; tn &lt;span style="color:blue"&gt;in&lt;/span&gt; view.FireOnTypes)
                        _primaryView.Add(Type.GetType(tn), view.Name.ToLower());
                }
                &lt;span style="color:blue"&gt;else&lt;/span&gt;
                {
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (view.ConsistentSaveToThisView)
                        AddToViewList(_consistentViews, view);
                    &lt;span style="color:blue"&gt;else&lt;/span&gt;
                        AddToViewList(_otherViews, view);
                }
            }
        }


Then to use it is simple.  all you do is the following in your view constructor&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;this&lt;/span&gt;.Schema = &lt;span style="color:blue"&gt;typeof&lt;/span&gt;(NameListIdView.RowSchema);
&lt;span style="color:blue"&gt;this&lt;/span&gt;.AdditionalSchemaTypes.Add(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(INameListIdView));
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The only other thing you need to do is put the interface on the rowschema implementation for the view otherwise validation will complain.&lt;/p&gt;
&lt;p&gt;----- EDIT ---&lt;/p&gt;
&lt;p&gt;Had to fix a few mistake sin the code above&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Sat, 17 Nov 2012 21:13:25 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117091325P</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;That would fix everything apart from one thing which is the attribute [FullText]. &amp;nbsp;I am liking the interface idea i had more and more because then i can also name the interface more as a search object and make the properties only have a get method. &amp;nbsp;The
 interface makes it all nice and generic and since it just has the property&amp;nbsp;decelerations&amp;nbsp;it would not have the attributes etc. &amp;nbsp;Then the implementation can have get/set and attributes like it does now meaning there is no change for anyone not using&amp;nbsp;repository&amp;nbsp;pattern,&amp;nbsp;dependency&amp;nbsp;injection
 or onion design. &amp;nbsp;That fixes all the issues i had with the view design that did not feel quite right. &amp;nbsp;I will&amp;nbsp;probably&amp;nbsp;change my modification to use a property on the view or a method on the view to add the extra types. I thought about grabbing any interfaces
 the rowschema implementation implements automatically but then realised you could easily get classes and other issues then so it is better to manually set them.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You really have done a great job with this database! &amp;nbsp;while i have hit a few issues here and there the design is allowing most of them to be fixed quickly and easily in most cases and every system has a few issues. I know i will be using your database for
 all my apps where i don't want to install a relation database which is 90% of the stuff i build/work on when not at work. &amp;nbsp;I have tried many object DB's but yours seems to be the fastest and the most flexible. &amp;nbsp;Great job.&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Sat, 17 Nov 2012 20:56:05 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117085605P</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I will make it so that the RDBSchema is optional and if it the row schema is not inherited it will check if you have a docid property/field defined. (you will have to use properties instead of fields so binding will work).&lt;/p&gt;
&lt;p&gt;This way you can define the row schema elsewhere and use it in your view.&lt;/p&gt;
&lt;/div&gt;</description><author>mgholam</author><pubDate>Sat, 17 Nov 2012 14:18:46 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117021846P</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;blockquote style="border:solid .1em #ccc; font-style:italic; margin:.25em 1em 0 1em; padding:0 .25em 0 .25em"&gt;
&lt;strong&gt;MGholam wrote:&lt;/strong&gt;&lt;br&gt;
&lt;p&gt;If you implement {get;set;} for your properties instead of fields and add a Guid DocID property to your schema then you are isolated from RaptorDB ( the dependency was for field property bindings working correctly and the docid property).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tried that but it throws an exception saying &amp;quot;The schema must be derived from RaptorDb.RDBSchema&amp;quot; &amp;nbsp;which is the whole problem. &amp;nbsp;Been able to use your own interface is actually working very nicely&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Sat, 17 Nov 2012 09:15:07 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117091507A</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I have a working fix and tests so far are looking good. &amp;nbsp;there may be a better way to do this i am nto sure and this requires the latest source from codeplex to work i suspect but here goes.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Firstly a change to View.cs to add the following method to class View&amp;lt;T&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;virtual&lt;/span&gt; Type[] GetExtraTypesToMap()
        {
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Type[0];
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then a change to Viewmanager.cs on line 264 to add the new type. &amp;nbsp;I will include some lines around the change so it is easy to work out where it goes.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt; &lt;span style="color:green"&gt;// add view schema mapping &lt;/span&gt;
                _otherViewTypes.Add(view.Schema, view.Name.ToLower());
&lt;span style="color:green"&gt;//start of change&lt;/span&gt;
                &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Type type &lt;span style="color:blue"&gt;in&lt;/span&gt; view.GetExtraTypesToMap())
                {
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (type.IsAssignableFrom(view.Schema))
                    {
                        _otherViewTypes.Add(type, view.Name.ToLower());
                    }
                    &lt;span style="color:blue"&gt;else&lt;/span&gt;
                    {
                        &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Exception(&lt;span style="color:blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515"&gt;&amp;quot;Type {0} is not inherited by {1} and therefore cannot be added to GetExtraTypesToMap()&amp;quot;&lt;/span&gt;, type, view.Schema));
                    }
                }
&lt;span style="color:green"&gt;//end of change&lt;/span&gt;

                &lt;span style="color:green"&gt;//_viewAQFNmapping.Add(view.GetType().AssemblyQualifiedName, view.Name.ToLower());&lt;/span&gt;
                &lt;span style="color:green"&gt;//_viewAQFNmapping.Add(view.Schema.AssemblyQualifiedName, view.Name.ToLower());&lt;/span&gt;

&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;As a sample of how to use it i have included the code below&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;&lt;span style="color:green"&gt;//The query&lt;/span&gt;
 Result&amp;lt;ITestView&amp;gt; result2 = data.Query&amp;lt;ITestView&amp;gt;(a =&amp;gt; (a.Id == &lt;span style="color:#a31515"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;));

&lt;span style="color:green"&gt;//The Interface&lt;/span&gt;
&lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;interface&lt;/span&gt; ITestView
    {
        Guid UnquieID { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color:green"&gt;//public SourceIds SourceId;&lt;/span&gt;
        &lt;span style="color:blue"&gt;int&lt;/span&gt; SourceId { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color:green"&gt;//public DateTime? LastCheckedForChanges;&lt;/span&gt;
        DateTime LastCheckedForChanges { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color:blue"&gt;string&lt;/span&gt; Id { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
    }

&lt;span style="color:green"&gt;//The View&lt;/span&gt;
     [RegisterView]
    &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; NameListIdView : View&amp;lt;NameList&amp;gt;
    {
         &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; RowSchema : RowSchemaBase, ITestView  &lt;span style="color:green"&gt;// define the schema for this view&lt;/span&gt;
        {
             &lt;span style="color:blue"&gt;public&lt;/span&gt; Guid UnquieID { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
            &lt;span style="color:green"&gt;//public SourceIds SourceId;&lt;/span&gt;
             &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;int&lt;/span&gt; SourceId { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
            &lt;span style="color:green"&gt;//public DateTime? LastCheckedForChanges;&lt;/span&gt;
             &lt;span style="color:blue"&gt;public&lt;/span&gt; DateTime LastCheckedForChanges { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
             &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; Id { &lt;span style="color:blue"&gt;get&lt;/span&gt;; &lt;span style="color:blue"&gt;set&lt;/span&gt;; }
           
            &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; Type GetViewType()
            {
                &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;typeof&lt;/span&gt;(NameListIdView);
            }
        }

         &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; Type[] GetExtraTypesToMap()
         {
             &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; Type[] { &lt;span style="color:blue"&gt;typeof&lt;/span&gt;(ITestView) };
         }
         &lt;span style="color:blue"&gt;public&lt;/span&gt; NameListIdView()
        {
           
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Name = &lt;span style="color:#a31515"&gt;&amp;quot;NameListIdView&amp;quot;&lt;/span&gt;;
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Description = &lt;span style="color:#a31515"&gt;&amp;quot;Ids linked to each NameList&amp;quot;&lt;/span&gt;;
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.isPrimaryList = &lt;span style="color:blue"&gt;false&lt;/span&gt;;
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.isActive = &lt;span style="color:blue"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.BackgroundIndexing = &lt;span style="color:blue"&gt;false&lt;/span&gt;;
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Version = 1;
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Schema = &lt;span style="color:blue"&gt;typeof&lt;/span&gt;(NameListIdView.RowSchema);

            &lt;span style="color:blue"&gt;this&lt;/span&gt;.AddFireOnTypes(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(NameList));

            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Mapper = (api, docid, doc) =&amp;gt;
            {
                &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue"&gt;var&lt;/span&gt; dsd &lt;span style="color:blue"&gt;in&lt;/span&gt; doc.DataSourceDetails)
                {
                    api.Emit(docid, doc.EntityID, (&lt;span style="color:blue"&gt;int&lt;/span&gt;)dsd.DataSourceIDType, dsd.LastCheckedForChanges.HasValue?dsd.LastCheckedForChanges:DateTime.MinValue, dsd.DataSourceID);
                }
            };
        }
    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Sat, 17 Nov 2012 09:11:24 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117091124A</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;If you implement {get;set;} for your properties instead of fields and add a Guid DocID property to your schema then you are isolated from RaptorDB ( the dependency was for field property bindings working correctly and the docid property).&lt;/p&gt;
&lt;/div&gt;</description><author>MGholam</author><pubDate>Sat, 17 Nov 2012 09:09:17 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117090917A</guid></item><item><title>New Post: Views/RowSchemas</title><link>http://raptordb.codeplex.com/discussions/403574</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Lastest issue i am having is with the RowScemas needing to extend a class from RaptorDB. &amp;nbsp;I am working on building my code to be database&amp;nbsp;independent&amp;nbsp;and that works perfectly fine for the entities for this database but i hit an issue with
 the view/rowschema. &amp;nbsp;This also becomes an issue in the repoistory pattern as since you query the rowschema and it extends a class from the raptorDB then any thing using the repository also need the RaptorDB common dll included in their project tieing
 everything to the database.&lt;/p&gt;
&lt;p&gt;I am&amp;nbsp;wondering&amp;nbsp;if there is anyway the views could be changed so that you basically end up with another entity for the view that has no references to anything else like a normal entity and this is what you use in searches and search results. &amp;nbsp;You
 then either have a third class that likes the view entity and normal entity together and configures the view or you just have a series of methods or something you can call to do it. All my issues seem to relate to the face that i need to use attributes on
 the view entity and also extend&amp;nbsp;RowSchema. &amp;nbsp;I tired using an interface on the view which worked quite well apart from searching and counts because they were then done on the interface and the system could not match the interface to the viewname.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Just an idea that only just popped into my head but would it be possible to make it so that you could declare extra types on a RowSchema that would match that view? &amp;nbsp;As in i make my RowSchema also implement interface&amp;nbsp;ITestView and in the constructor
 or something i call a base method to also register &amp;quot;ITestView&amp;quot; as a type that can be used to query that view. That way you have have just the data interface declared in a common project and it would nto need any reference to RaptorDB removing the&amp;nbsp;dependency.
 &amp;nbsp;Then the RowSchema can just implement that interface. &amp;nbsp;Queries can be done against the interface then so nothing needs to know the real database i am using. Does that make sense? &amp;nbsp;Basically Add view would call a method on the RowSchema to get
 potential other types that will match the view that the RowSchema implements.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Sat, 17 Nov 2012 08:37:01 GMT</pubDate><guid isPermaLink="false">New Post: Views/RowSchemas 20121117083701A</guid></item><item><title>New Post: Deleting and storing files/binary data</title><link>http://raptordb.codeplex.com/discussions/403131</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Fair enough. &amp;nbsp;For now i think i will use&amp;nbsp;http://filedb.codeplex.com/ for storing my files since i need cache system for them and they will change a lot or be different files. &amp;nbsp;I will still use your db for my data just not the files.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Adding a compact method to your database could be useful for people that don't want to keep deleted items and anything else that uses space but is no longer the latest version. If you were to add that method i would suggest adding it so that is can be run
 at the same time the database is in use so that it could be run as a background task on another thread with the understanding it will take a while and may slow down that database a bit while it is running but the database will still function.&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Wed, 14 Nov 2012 20:23:07 GMT</pubDate><guid isPermaLink="false">New Post: Deleting and storing files/binary data 20121114082307P</guid></item><item><title>New Post: Deleting and storing files/binary data</title><link>http://raptordb.codeplex.com/discussions/403131</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;1) Delete operations are costly and require a lot of code to implement (track, defrag free spaces etc.) and the storage files were implemented as append only, and in my experience delete operations are not really suited for business apps were you can defend
 your position by showing the chronological order of events. The only way is to copy your data to a new database file if you want to compact things (it is trivial to do so and maybe I will add a &amp;quot;compact&amp;quot; method in the future).&lt;/p&gt;
&lt;p&gt;2) Binary data can be stored by using the SaveBytes() and FetchBytes() [these are stored in a separate storage file to &amp;quot;data&amp;quot; objects].&lt;/p&gt;
&lt;/div&gt;</description><author>mgholam</author><pubDate>Wed, 14 Nov 2012 15:14:13 GMT</pubDate><guid isPermaLink="false">New Post: Deleting and storing files/binary data 20121114031413P</guid></item><item><title>New Post: Deleting and storing files/binary data</title><link>http://raptordb.codeplex.com/discussions/403131</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I have been talking to you on codproject about the query syntax but i am finding codeproject a bit of a pain for discussions so i thought i would try here.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One other thing i am considering using this database for is cache. A file cache for one of my http libs in my app to be exact. That then raises 2 questions.&lt;/p&gt;
&lt;p&gt;1. Can you explain deleting and why it is the way it is? The codeproject article makes it sound like deleting and entity does not delete it which is worrying for a cache as it would forever grow and i could not get rid of data i don't want any more.&lt;/p&gt;
&lt;p&gt;2. What would be the&amp;nbsp;recommend&amp;nbsp;way to store binary data plus a little meta data such as name etc that would be used to extract the binary data. &amp;nbsp;My files should not be bigger than 5MB but i want to understand how this part works and best practice
 so i don't start with a &amp;nbsp;bad design. Most of my files will be under 100KB but i will have many of them and don't really want a file on disk for each of them if possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are other solutions i can consider it is just that since i am already using your database it seemed a good idea to use it for the cache as well if it will support it.&lt;/p&gt;
&lt;p&gt;Chris&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description><author>seer_tenedos</author><pubDate>Wed, 14 Nov 2012 07:51:41 GMT</pubDate><guid isPermaLink="false">New Post: Deleting and storing files/binary data 20121114075141A</guid></item></channel></rss>