[libagilejedi commit] r19 - in trunk: . AgileJedi.Core AgileJedi.MemcachedForMonorail AgileJedi.MemcachedForMonorail.Te...

0 views
Skip to first unread message

codesite...@google.com

unread,
Nov 19, 2008, 12:15:35 AM11/19/08
to libagileje...@googlegroups.com
Author: Daniel.Pupek
Date: Tue Nov 18 21:06:35 2008
New Revision: 19

Added:
trunk/AgileJedi.MemcachedForMonorail/
trunk/AgileJedi.MemcachedForMonorail.Tests/

trunk/AgileJedi.MemcachedForMonorail.Tests/AgileJedi.MemcachedForMonorail.Tests.csproj

trunk/AgileJedi.MemcachedForMonorail.Tests/AjileJedi.MemcachedForMonorail.Tests.nunit
trunk/AgileJedi.MemcachedForMonorail.Tests/App.config

trunk/AgileJedi.MemcachedForMonorail.Tests/MemcachedSessionDictionaryTests.cs
trunk/AgileJedi.MemcachedForMonorail.Tests/Properties/
trunk/AgileJedi.MemcachedForMonorail.Tests/Properties/AssemblyInfo.cs
trunk/AgileJedi.MemcachedForMonorail.Tests/Utility.cs
trunk/AgileJedi.MemcachedForMonorail/ARSessionItem.cs
trunk/AgileJedi.MemcachedForMonorail/ActiveRecord.config

trunk/AgileJedi.MemcachedForMonorail/AgileJedi.MemcachedForMonorail.csproj
trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/

trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/MemCacheSessionFactory.cs

trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/MemCachedSession.cs
trunk/AgileJedi.MemcachedForMonorail/MemCacheDB.cs
trunk/AgileJedi.MemcachedForMonorail/Properties/
trunk/AgileJedi.MemcachedForMonorail/Properties/AssemblyInfo.cs
trunk/AgileJedi.MemcachedForMonorail/Transcoders/

trunk/AgileJedi.MemcachedForMonorail/Transcoders/FastSerializerTranscoder.cs
trunk/Thirdparty/
trunk/Thirdparty/CastleProjects/
trunk/Thirdparty/CastleProjects/build/
trunk/Thirdparty/CastleProjects/build/net-2.0/
trunk/Thirdparty/CastleProjects/build/net-2.0/release/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.Collections.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.Indexing.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.Util.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.XPath.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.CodeDom.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Compiler.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Extensions.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Interpreter.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Parser.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Useful.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Microsoft.Build.Tasks.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.NAnt.Tasks.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Cassini.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.ActiveRecord.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.ActiveRecord.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Binder.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Binder.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Common.EmailSender.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Common.EmailSender.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Common.TemplateEngine.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Common.TemplateEngine.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.DictionaryAdapter.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.DictionaryAdapter.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Validator.Tests.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Validator.Tests.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Validator.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Validator.pdb
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Components.Validator.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Core.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Core.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.DynamicProxy.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.DynamicProxy.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.DynamicProxy2.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.DynamicProxy2.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.ActiveRecordIntegration.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.ActiveRecordIntegration.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.AutomaticTransactionManagement.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.AutomaticTransactionManagement.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.BatchRegistration.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.BatchRegistration.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Cache.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Cache.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Logging.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Logging.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.NHibernateIntegration.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.NHibernateIntegration.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Remoting.TestComponents.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Remoting.TestComponents.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Synchronize.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.Synchronize.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.WcfIntegration.Demo.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.WcfIntegration.Demo.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.WcfIntegration.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Facilities.WcfIntegration.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MicroKernel.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MicroKernel.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.ActiveRecordSupport.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.ActiveRecordSupport.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.Framework.Views.NVelocity.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.Framework.Views.NVelocity.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.Framework.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.Framework.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.TestSupport.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.TestSupport.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.TransformFilters.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.TransformFilters.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.Views.Brail.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.Views.Brail.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.WindsorExtension.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.MonoRail.WindsorExtension.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Services.Logging.Log4netIntegration.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Services.Logging.Log4netIntegration.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Services.Logging.NLogIntegration.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Services.Logging.NLogIntegration.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Services.Transaction.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Services.Transaction.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Windsor.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.Windsor.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Db4objects.Db4o.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/IBatisNet.Common.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/IBatisNet.Common.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/IBatisNet.DataMapper.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/IBatisNet.DataMapper.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Iesi.Collections.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Iesi.Collections.license.txt

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Iesi.Collections.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Interop.SHDocVw.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/IronMath.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/IronPython.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Messages.lt.Designer.cs
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Messages.lt.resx
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NAnt.Core.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/NHibernate.Mapping.Attributes.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/NHibernate.Mapping.Attributes.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NHibernate.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/NHibernate.license.txt
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NHibernate.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NLog.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NLog.license.txt
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NLog.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/NUnitLite.Silverlight.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NVelocity.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NVelocity.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/NetronGraphLib.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/NetronMaths.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Newtonsoft.Json.XML

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Newtonsoft.Json.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Nullables.NHibernate.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/Nullables.NHibernate.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Nullables.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Nullables.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Rhino.Mocks.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Rhino.Mocks.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/WatiN.Core.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/WatiN.Core.xml

trunk/Thirdparty/CastleProjects/build/net-2.0/release/anrControls.Markdown.NET.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/antlr.runtime.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/es/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/es/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/fr/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/fr/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/he/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/he/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/it/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/it/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/log4net.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/log4net.license.txt
trunk/Thirdparty/CastleProjects/build/net-2.0/release/log4net.xml
trunk/Thirdparty/CastleProjects/build/net-2.0/release/lt/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/lt/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/lv/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/lv/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/nl/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/nl/Castle.Components.Validator.resources.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/nunit.framework.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/nunit.framework.license.txt
trunk/Thirdparty/CastleProjects/build/net-2.0/release/pt/
trunk/Thirdparty/CastleProjects/build/net-2.0/release/pt-BR/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/pt-BR/Castle.MonoRail.Framework.resources.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/build/net-2.0/release/pt/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/ru/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/ru/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/sv/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/sv/Castle.Components.Validator.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/build/net-2.0/release/test-results/
trunk/Thirdparty/CastleProjects/build/net-2.0/release/zh-TW/

trunk/Thirdparty/CastleProjects/build/net-2.0/release/zh-TW/Castle.MonoRail.Framework.resources.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/tools/
trunk/Thirdparty/CastleProjects/tools/generator/
trunk/Thirdparty/CastleProjects/tools/generator/Generators/
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Config.boo
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/ControllerGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/Controller.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/Test.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/View.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/View.vm

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/layout.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Controller/Templates/layout.vm
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Generator/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Generator/GeneratorGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Generator/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Generator/Templates/Generator.boo
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Migration/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Migration/MigrationGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Migration/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Migration/Templates/Migration.cs
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/ModelGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/Templates/Migration.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/Templates/Model.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/Templates/ServiceComponent.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Model/Templates/Test.cs
trunk/Thirdparty/CastleProjects/tools/generator/Generators/NAntScript/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/NAntScript/NAntScriptGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/NAntScript/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/NAntScript/Templates/default.build
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/ProjectGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/Config.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/app/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/app/controllers/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/app/controllers/ApplicationController.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/config/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/config/Boot.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/config/databases/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/config/databases/development.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/config/databases/test.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/default.build

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/doc/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/doc/readme.txt

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-1.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-1.0/Migrator.Console.exe
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-1.0/Migrator.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-1.0/Migrator.dll.mdb
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-1.0/Mono.Security.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-2.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-2.0/Migrator.Console.exe
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-2.0/Migrator.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-2.0/Migrator.dll.mdb
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/mono-2.0/Mono.Security.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-1.1/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-1.1/Migrator.Console.exe
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-1.1/Migrator.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-1.1/Migrator.dll.mdb
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-1.1/Mono.Security.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-2.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-2.0/Migrator.Console.exe
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-2.0/Migrator.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-2.0/Migrator.dll.mdb
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Migrator/net-2.0/Mono.Security.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/LICENSE.txt

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/mono-1.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/mono-1.0/Npgsql.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/mono-2.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/mono-2.0/Npgsql.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-1.1/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-1.1/Mono.Security.Protocol.Tls.license

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-1.1/Mono.Security.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-1.1/Npgsql.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-1.1/Npgsql.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-2.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-2.0/Mono.Security.Protocol.Tls.license

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-2.0/Mono.Security.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-2.0/Npgsql.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/Npgsql/net-2.0/Npgsql.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/mono-1.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/mono-1.0/MySql.Data.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/mono-1.0/MySql.Data.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/mono-2.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/mono-2.0/MySql.Data.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/mono-2.0/MySql.Data.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/net-1.1/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/net-1.1/MySql.Data.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/net-1.1/MySql.Data.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/net-2.0/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/net-2.0/MySql.Data.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/mysql/net-2.0/MySql.Data.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/CollectionGen.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/Interop.MsmMergeTypeLib.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/Interop.StarTeam.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/Interop.WindowsInstaller.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/MSITaskErrors.mst
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/MSITaskTemplate.msi
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/MSMTaskErrors.mst
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/MSMTaskTemplate.msm
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/NAnt.Contrib.Tasks.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/NAnt.Contrib.Tasks.xml

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/SLiNgshoT.Core.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/SLiNgshoT.exe
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nant/SourceSafe.Interop.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nunit/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/lib/nunit/nunit.framework.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/images/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/images/castle.png
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/javascripts/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/javascripts/controls.js

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/javascripts/dragdrop.js

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/javascripts/effects.js

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/content/javascripts/prototype.js

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/global.asax

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/index.html

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/public/web.config

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/console

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/console.bat

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/console.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/generate

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/generate.bat

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/migrate

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/migrate.bat

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/server

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/server.bat

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/script/server.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/test/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/test/controllers/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/test/controllers/ControllerTestCase.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/test/models/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/test/models/ActiveRecordTestCase.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2003/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2003/app.csproj

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2003/solution.sln

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2003/test.csproj

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2005/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2005/app.csproj

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2005/solution.sln

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Project/Templates/vs/2005/test.csproj
trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/ScaffoldGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/ApplicationController.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/Controller.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/ScaffoldHelper.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/Test.cs

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/style.css

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/_form.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/_form.vm

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/edit.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/edit.vm

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/layout.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/layout.vm

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/list.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/list.vm

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/new.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/new.vm

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/view.brail

trunk/Thirdparty/CastleProjects/tools/generator/Generators/Scaffold/Templates/views/view.vm
trunk/Thirdparty/CastleProjects/tools/generator/default.build
trunk/Thirdparty/CastleProjects/tools/generator/doc/

trunk/Thirdparty/CastleProjects/tools/generator/doc/MGutz.CodeInjection.txt
trunk/Thirdparty/CastleProjects/tools/generator/doc/changelog.txt
trunk/Thirdparty/CastleProjects/tools/generator/lib/

trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.Lang.CodeDom.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.Lang.Compiler.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.Lang.Interpreter.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.Lang.Parser.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.Lang.Useful.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.Lang.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/tools/generator/lib/Boo.NAnt.Tasks.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/lib/MGutz.CodeInjection.dll
(contents, props changed)

trunk/Thirdparty/CastleProjects/tools/generator/lib/nunit.framework.dll
(contents, props changed)
trunk/Thirdparty/CastleProjects/tools/generator/readme.txt
trunk/Thirdparty/CastleProjects/tools/generator/script/
trunk/Thirdparty/CastleProjects/tools/generator/script/generate
trunk/Thirdparty/CastleProjects/tools/generator/script/generate.bat
trunk/Thirdparty/CastleProjects/tools/generator/script/monorail
trunk/Thirdparty/CastleProjects/tools/generator/script/monorail.bat
trunk/Thirdparty/CastleProjects/tools/generator/src/
trunk/Thirdparty/CastleProjects/tools/generator/src/app/

trunk/Thirdparty/CastleProjects/tools/generator/src/app/ArgumentParser.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/app/Attributes/

trunk/Thirdparty/CastleProjects/tools/generator/src/app/Attributes/ArgumentAttribute.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/app/Attributes/OptionAttribute.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/app/Extentions/

trunk/Thirdparty/CastleProjects/tools/generator/src/app/Extentions/Extentions.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/app/Extentions/Inflector.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/app/Generate.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/app/GeneratorBase.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/app/GeneratorException.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/app/GeneratorFactory.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/app/NamedGeneratorBase.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/app/Template.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/test/
trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/

trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/ControllerTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/GeneratorTestCase.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/ModelTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/NAntScriptGenerator.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/ProjectGeneratorTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/functional/ScaffoldTest.boo
trunk/Thirdparty/CastleProjects/tools/generator/src/test/unit/

trunk/Thirdparty/CastleProjects/tools/generator/src/test/unit/ArgumentParserTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/unit/ExtentionsTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/unit/GeneratorTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/unit/InflectorTest.boo

trunk/Thirdparty/CastleProjects/tools/generator/src/test/unit/TemplateTest.boo
trunk/Thirdparty/Memcached/
trunk/Thirdparty/Memcached/Enyim.Caching.XML
trunk/Thirdparty/Memcached/Enyim.Caching.dll (contents, props changed)
trunk/Thirdparty/Memcached/Enyim.Caching.pdb (contents, props changed)
trunk/Thirdparty/Memcached/InstallService.bat
trunk/Thirdparty/Memcached/README
trunk/Thirdparty/Memcached/StartMemcached.bat
trunk/Thirdparty/Memcached/StopMemcached.bat
trunk/Thirdparty/Memcached/log4net.dll (contents, props changed)
trunk/Thirdparty/Memcached/log4net.xml
trunk/Thirdparty/Memcached/memcached.exe (contents, props changed)
trunk/Thirdparty/Memcached/sample.config
Removed:
trunk/AjileJedi.MemcachedForMonorail/
trunk/AjileJedi.MemcachedForMonorail.Tests/
Modified:
trunk/AgileJedi.Core/AgileJedi.Core.csproj
trunk/libagilejedi.sln

Log:
Added ast fork changes...

Modified: trunk/AgileJedi.Core/AgileJedi.Core.csproj
==============================================================================
--- trunk/AgileJedi.Core/AgileJedi.Core.csproj (original)
+++ trunk/AgileJedi.Core/AgileJedi.Core.csproj Tue Nov 18 21:06:35 2008
@@ -1,4 +1,4 @@
-<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)'
== '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -9,6 +9,11 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AgileJedi.Core</RootNamespace>
<AssemblyName>AgileJedi.Core</AssemblyName>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|
AnyCPU' ">
<DebugSymbols>true</DebugSymbols>

Added:
trunk/AgileJedi.MemcachedForMonorail.Tests/AgileJedi.MemcachedForMonorail.Tests.csproj
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail.Tests/AgileJedi.MemcachedForMonorail.Tests.csproj
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,117 @@
+<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)'
== '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{7B630F95-85D8-4AE5-B826-9A318E33DA77}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>AgileJedi.MemcachedForMonorail.Tests</RootNamespace>
+ <AssemblyName>AgileJedi.MemcachedForMonorail.Tests</AssemblyName>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|
AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|
AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Castle.ActiveRecord, Version=1.0.3.0,
Culture=neutral, PublicKeyToken=407dd0808d44fbdc,
processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\Thirdparty\CastleProjects\build\net-2.0\release\Castle.ActiveRecord.dll</HintPath>
+ </Reference>
+ <Reference Include="Enyim.Caching, Version=1.2.0.0, Culture=neutral,
PublicKeyToken=cec98615db04012e, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\Thirdparty\Memcached\Enyim.Caching.dll</HintPath>
+ </Reference>
+ <Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral,
PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\..\..\Program
Files\CastleProject\Bin\Dependencies\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="MemcachedSessionDictionaryTests.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Utility.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference
Include="..\AgileJedi.MemcachedForMonorail\AgileJedi.MemcachedForMonorail.csproj">
+ <Project>{3A85FAF5-AF28-490F-8C55-E100ED7370A4}</Project>
+ <Name>AgileJedi.MemcachedForMonorail</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="AjileJedi.MemcachedForMonorail.Tests.nunit" />
+ <None Include="App.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the
targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file

Added:
trunk/AgileJedi.MemcachedForMonorail.Tests/AjileJedi.MemcachedForMonorail.Tests.nunit
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail.Tests/AjileJedi.MemcachedForMonorail.Tests.nunit
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,6 @@
+<NUnitProject>
+ <Settings activeconfig="Default" />
+ <Config name="Default" binpathtype="Auto">
+ <assembly path="bin\Debug\AgileJedi.MemcachedForMonorail.Tests.dll" />
+ </Config>
+</NUnitProject>
\ No newline at end of file

Added: trunk/AgileJedi.MemcachedForMonorail.Tests/App.config
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail.Tests/App.config Tue Nov 18
21:06:35 2008
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <configSections>
+ <sectionGroup name="enyim.com">
+ <section name="sessionstate"
type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
+ </sectionGroup>
+ <section name="sessionstate"
type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
+ </configSections>
+ <enyim.com>
+ <sessionstate>
+ <servers>
+ <!-- put your own server(s) here-->
+ <add address="127.0.0.1" port="11211" />
+
+
+ <!--<clear />
+
+ <add address="172.16.172.130" port="20002" />
+ <add address="172.16.172.130" port="20004" />
+ <add address="172.16.172.130" port="20006" />
+ <add address="172.16.172.130" port="20008" />-->
+ </servers>
+ <socketPool minPoolSize="10" maxPoolSize="100"
connectionTimeout="00:00:10" deadTimeout="00:02:00" />
+ </sessionstate>
+ </enyim.com>
+ <sessionstate
keyTransformer="Enyim.Caching.Memcached.TigerHashKeyTransformer,
Enyim.Caching">
+ <servers>
+ <add address="127.0.0.1" port="11211" />
+
+ </servers>
+ <socketPool minPoolSize="2" maxPoolSize="100"
connectionTimeout="00:00:10" deadTimeout="00:02:00" />
+ </sessionstate>
+</configuration>
\ No newline at end of file

Added:
trunk/AgileJedi.MemcachedForMonorail.Tests/MemcachedSessionDictionaryTests.cs
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail.Tests/MemcachedSessionDictionaryTests.cs
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,330 @@
+using System;
+using System.Collections.Generic;
+using NUnit.Framework;
+using AgileJedi.MemcachedForMonorail.CustomSessionStateExtensions;
+using Enyim.Caching;
+using AgileJedi.MemcachedForMonorail.Transcoders;
+using Enyim.Reflection;
+using Enyim.Caching.Memcached;
+using Castle.ActiveRecord;
+using System.Collections;
+
+namespace AgileJedi.MemcachedForMonorail.Tests
+{
+ /// <summary>
+ /// Makes sure this dictionary acts like a session is supposed to act.
+ /// </summary>
+ [TestFixture()]
+ public class MemcachedSessionDictionaryTests
+ {
+ private IDictionary session;
+ private MemcachedClient client;
+ string configPath =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(MemCachedSessionDictionary)).CodeBase);
+
+ private bool useActiveRecord = true;
+
+ [TestFixtureSetUp]
+ public void TestFixtureSetup()
+ {
+ configPath = System.IO.Path.Combine(configPath, "ActiveRecord.config");
+
+ MemCachedSessionDictionary.SetupActiveRecordDBConnection(configPath);
+ MemCachedSessionDictionary.SetupRawDBConnection();
+ }
+
+ [TestFixtureTearDown]
+ public void TestFixtureTearDown()
+ {
+ MemCachedSessionDictionary.CloseActiveRecordDBConnection();
+ MemCachedSessionDictionary.CloseRawDBConnection();
+
+ Console.Out.WriteLine("Finished MemcachedSessionDictionary Tests");
+ }
+
+ [SetUp]
+ public void Setup()
+ {
+ client = new
MemcachedClient(MemCachedSessionDictionary.STR_Sessionstate);
+ session = new MemCachedSessionDictionary(Guid.NewGuid(), client);
+ ((MemCachedSessionDictionary)session).UseActiveRecord = useActiveRecord;
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ session.Clear();
+ }
+
+ #region Standard Smoke Tests
+ [Test]
+ public void SetValueAndReadItTest()
+ {
+ string testValue = "the value";
+ string testKey = "testvalue";
+ session.Add(testKey, testValue);
+
+ Assert.AreEqual(testValue, (string)session[testKey]);
+
+ }
+
+ [Test]
+ public void RemoveValueTest()
+ {
+ string testKey = "removethisvalue";
+ string testValue = "this should be removed";
+ session.Add(testKey, testValue);
+
+ Assert.AreEqual(testValue, session[testKey], "RemoveValueTest cannot
continue. Setting Failed.");
+
+ session.Remove(testKey);
+
+ Assert.IsNull(session[testKey]);
+ }
+
+ [Test]
+ public void StoreSerializableObject()
+ {
+ TestingObject obj = new TestingObject();
+ obj.SomeString = "This is a test";
+ session.Add("testobject", obj);
+ obj = (TestingObject)session["testobject"];
+
+ Assert.AreEqual("This is a test", obj.SomeString);
+ }
+
+ [Test, Ignore]
+ public void StoreNonSerializableObject()
+ {
+ Assert.Fail("Test Not Implemented");
+ }
+
+ [Test, Ignore]
+ public void EnumerateAllKeys()
+ {
+ Assert.Fail("Test Not Implemented");
+ }
+
+ [Test, Ignore]
+ public void EnumerateAllValues()
+ {
+ Assert.Fail("Test Not Implemented");
+ }
+
+ [Test]
+ public void ClearTheSessionTest()
+ {
+ for (int i = 0; i < 100; i++)
+ {
+ session.Add("testKey" + i.ToString(), "testValue");
+ Assert.AreEqual("testValue", session["testKey" + i.ToString()]);
+ }
+ //Assert.AreEqual(100, session.Count, "the session value count is
wrong.");
+
+ session.Clear();
+ //Assert.AreEqual(0, session.Count, "the session value count is
wrong.");
+ for (int i = 0; i < 100; i++)
+ {
+ Assert.IsNull(session["testKey" + i.ToString()]);
+ }
+ }
+
+ [Test]
+ public void UnsetItemReturnsNullTest()
+ {
+ Assert.IsNull(session["nonexistentkey"]);
+ }
+ #endregion
+
+ #region DB Persistence Tests
+ [Test]
+ public void SaveObjectAndClearMemcached()
+ {
+ TestingObject obj = new TestingObject();
+ session["testobject"] = obj;
+ client.FlushAll();
+ Assert.AreEqual(obj.SomeGuid,
((TestingObject)session["testobject"]).SomeGuid);
+ }
+ #endregion
+
+ #region Performance Tests
+ [Test]
+ public void InsertionPerformanceTest()
+ {
+ int insertions = 10000;
+ Queue<TimingRecord> durationQueue = new Queue<TimingRecord>();
+
+ ((MemCachedSessionDictionary)session).UseDatabase = true;
+ ((MemCachedSessionDictionary)session).UseActiveRecord = true;
+ durationQueue.Enqueue(new TimingRecord("ActiveRecord",
+ InsertionPerformanceFunc("ActiveRecordDB", insertions)));
+
+ ((MemCachedSessionDictionary)session).UseDatabase = true;
+ ((MemCachedSessionDictionary)session).UseActiveRecord = false;
+ durationQueue.Enqueue(new TimingRecord("direct database connection",
+ InsertionPerformanceFunc("directDB------", insertions)));
+
+ ((MemCachedSessionDictionary)session).UseDatabase = false;
+ durationQueue.Enqueue(new TimingRecord("no database persistance",
+ InsertionPerformanceFunc("NoDB----------", insertions)));
+
+ while (durationQueue.Count != 0)
+ {
+ Console.Out.WriteLine(String.Format("{0} insertions with {1} database
persistance : {2}", insertions, durationQueue.Peek().recordType,
durationQueue.Dequeue().recordDuration));
+ }
+ }
+
+ DateTime start, stop;
+ public TimeSpan InsertionPerformanceFunc(String keyPrefix, int
insertions)
+ {
+ start = DateTime.UtcNow;
+ for (int i = 0; i < insertions; i++)
+ {
+ session.Add(keyPrefix + i.ToString(), "testValue");
+ }
+ stop = DateTime.UtcNow;
+ return (stop - start);
+ }
+
+ [Test(), Ignore()]
+ public void WhichTranscoderIsBest()
+ {
+ StoreThisType(typeof(TestingObject));
+
+ StoreThisType(typeof(string));
+
+
+
+ }
+ private static void StoreThisType(Type testtype)
+ {
+ Enyim.Caching.Configuration.MemcachedClientConfiguration config = new
Enyim.Caching.Configuration.MemcachedClientConfiguration();
+ config.Transcoder = typeof(FastSerializerTranscoder);
+ config.Servers.Add(new
System.Net.IPEndPoint(System.Net.IPAddress.Parse("127.0.0.1"), 11211));
+ config.SocketPool.MinPoolSize = 10;
+ config.SocketPool.MaxPoolSize = 100;
+ int repeatFor = 100000;
+
+ Console.WriteLine("Start Storing {0} instances of {1}........",
repeatFor.ToString(), testtype.ToString());
+
+
+ MemcachedClient client;
+ client = new MemcachedClient(config);
+ long start = DateTime.Now.Ticks;
+
+
+ for (int i = 0; i < repeatFor; i++)
+ {
+ object obj;
+
+ switch (Type.GetTypeCode(testtype))
+ {
+ case TypeCode.String:
+ obj = Guid.NewGuid().ToString();
+ break;
+ default:
+ obj = FastActivator.CreateInstance(testtype);
+ break;
+ }
+
+ client.Store(StoreMode.Add, "test" + i.ToString(), obj);
+
+ }
+ double fastSerializeTicks = TimeSpan.FromTicks(DateTime.Now.Ticks -
start).TotalSeconds;
+ Console.Write(fastSerializeTicks);
+ Console.Write(" seconds for FastSerializer");
+ Console.WriteLine();
+
+ config.Transcoder = typeof(DefaultTranscoder);
+
+ client = new MemcachedClient(config);
+ start = DateTime.Now.Ticks;
+ for (int i = 0; i < repeatFor; i++)
+ {
+ object obj;
+
+ switch (Type.GetTypeCode(testtype))
+ {
+ case TypeCode.String:
+ obj = Guid.NewGuid().ToString();
+ break;
+ default:
+ obj = FastActivator.CreateInstance(testtype);
+ break;
+ }
+ client.Store(StoreMode.Add, "test" + i.ToString(), obj);
+
+ }
+ double defaultSerializeTicks = TimeSpan.FromTicks(DateTime.Now.Ticks -
start).TotalSeconds;
+ Console.Write(defaultSerializeTicks);
+ Console.Write(" seconds for defaultSerialize");
+ Console.WriteLine();
+ client.FlushAll();
+ }
+ #endregion
+
+ }
+
+ public class TimingRecord
+ {
+ public string recordType;
+ public TimeSpan recordDuration;
+
+ public TimingRecord(string recordName, TimeSpan duration)
+ {
+ recordType = recordName;
+ recordDuration = duration;
+ }
+ }
+
+ [Serializable]
+ public class TestingObject
+ {
+
+ public TestingObject()
+ {
+ this._SomeDate = DateTime.Now;
+ this._SomeGuid = Guid.NewGuid();
+ this._SomeHashTable = new System.Collections.Hashtable();
+ this._SomeInt = DateTime.Now.Second;
+ this._SomeString = Guid.NewGuid().ToString();
+
+ }
+
+ private Guid _SomeGuid;
+ public Guid SomeGuid
+ {
+ get { return _SomeGuid; }
+ set { _SomeGuid = value; }
+ }
+
+ private string _SomeString;
+ public string SomeString
+ {
+ get { return _SomeString; }
+ set { _SomeString = value; }
+ }
+
+ private System.Collections.Hashtable _SomeHashTable;
+ public System.Collections.Hashtable SomeHashTable
+ {
+ get { return _SomeHashTable; }
+ set { _SomeHashTable = value; }
+ }
+
+ private DateTime _SomeDate;
+ public DateTime SomeDate
+ {
+ get { return _SomeDate; }
+ set { _SomeDate = value; }
+ }
+
+ private int _SomeInt;
+ public int SomeInt
+ {
+ get { return _SomeInt; }
+ set { _SomeInt = value; }
+ }
+
+
+ }
+}

Added: trunk/AgileJedi.MemcachedForMonorail.Tests/Properties/AssemblyInfo.cs
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail.Tests/Properties/AssemblyInfo.cs
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the
following
+// set of attributes. Change these attribute values to modify the
information
+// associated with an assembly.
+[assembly: AssemblyTitle("AgileJedi.MemcachedForMonorail.Tests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AgileJedi.MemcachedForMonorail.Tests")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is
exposed to COM
+[assembly: Guid("269ffdcd-35ac-4afd-8584-7ec7db4efaf8")]
+
+// Version information for an assembly consists of the following four
values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and
Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Added: trunk/AgileJedi.MemcachedForMonorail.Tests/Utility.cs
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail.Tests/Utility.cs Tue Nov 18
21:06:35 2008
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace AgileJedi.MemcachedForMonorail.Tests
+{
+ class Utility
+ {
+ public static void StartMemcached(){
+
+ }
+
+ public static void StopMemcached()
+ {
+
+ }
+ }
+}

Added: trunk/AgileJedi.MemcachedForMonorail/ARSessionItem.cs
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail/ARSessionItem.cs Tue Nov 18
21:06:35 2008
@@ -0,0 +1,112 @@
+using System;
+using Castle.ActiveRecord;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.IO;
+using NHibernate.Criterion;
+
+/* Table : SessionItems
+ * Columns: Id : uniqueidentifier
+ * ItemData : image
+ * SessionId: char(50)
+ * [Key] : nvarchar(50)
+ */
+
+namespace AgileJedi.MemcachedForMonorail
+{
+ /// <summary>
+ /// Used to persist session items to a database
+ /// </summary>
+ [ActiveRecord("SessionItems")]
+ public class ARSessionItem
+ {
+ private static BinaryFormatter serializer = new BinaryFormatter();
+
+ public ARSessionItem()
+ {
+
+ }
+
+ public ARSessionItem(Guid sessionId, string key, Object value)
+ {
+ this._sessionId = sessionId;
+ this.Key = key;
+ this.Value = value;
+ }
+
+ private Guid _id = Guid.NewGuid();
+ [PrimaryKey(PrimaryKeyType.Assigned, Access =
PropertyAccess.NosetterLowercaseUnderscore)]
+ public Guid Id
+ {
+ get { return _id; }
+ }
+
+ [Property(Access=PropertyAccess.Property, NotNull=false)]
+ public byte[] ItemData
+ {
+ get
+ {
+ if(_value == null )
+ return null;
+
+ MemoryStream stream = new MemoryStream();
+ serializer.Serialize(stream, _value);
+ return stream.ToArray();
+ }
+ set
+ {
+ MemoryStream stream = new MemoryStream(value);
+ _value = (Object)serializer.Deserialize(stream);
+ }
+ }
+
+ private object _value = null;
+ public object Value
+ {
+ get {
+
+ return _value ;
+ }
+ set
+ {
+ _value = value;
+
+ }
+ }
+
+ private Guid _sessionId;
+ [Property]
+ public Guid SessionId
+ {
+ get { return _sessionId; }
+ set { _sessionId = value; }
+ }
+
+ private string _key;
+ [Property("[Key]")]
+ public string Key
+ {
+ get { return _key; }
+ set { _key = value; }
+ }
+
+ internal static ARSessionItem Find(Guid sessionId, string key)
+ {
+ return ActiveRecordMediator.FindOne(typeof(ARSessionItem),
Restrictions.And(Restrictions.Eq("SessionId", sessionId),
Restrictions.Eq("Key", key))) as ARSessionItem;
+ }
+
+ internal void Create()
+ {
+ ActiveRecordMediator<ARSessionItem>.Create(this);
+ }
+
+ internal void Remove()
+ {
+ ActiveRecordMediator<ARSessionItem>.Delete(this);
+ }
+
+ internal static void RemoveSession(Guid guid)
+ {
+
ActiveRecordMediator<ARSessionItem>.DeleteAll(typeof(ARSessionItem), "SessionId
= '" + guid + "'");
+ }
+ }
+}
\ No newline at end of file

Added: trunk/AgileJedi.MemcachedForMonorail/ActiveRecord.config
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail/ActiveRecord.config Tue Nov 18
21:06:35 2008
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<activerecord isWeb="false">
+ <config >
+ <add key="connection.driver_class"
value="NHibernate.Driver.SqlClientDriver" />
+ <add key="dialect"
value="NHibernate.Dialect.MsSql2005Dialect" />
+ <add key="connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" />
+ <add key="connection.connection_string" value="Data
Source=.\SQLEXPRESS;Initial Catalog=MEMCACHED;User Id=;Password=;Integrated
Security=True" />
+ </config>
+</activerecord>

Added:
trunk/AgileJedi.MemcachedForMonorail/AgileJedi.MemcachedForMonorail.csproj
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail/AgileJedi.MemcachedForMonorail.csproj
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,140 @@
+<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)'
== '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{3A85FAF5-AF28-490F-8C55-E100ED7370A4}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>AgileJedi.MemcachedForMonorail</RootNamespace>
+ <AssemblyName>AgileJedi.MemcachedForMonorail</AssemblyName>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|
AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|
AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Castle.ActiveRecord, Version=1.0.3.0,
Culture=neutral, PublicKeyToken=407dd0808d44fbdc,
processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\Thirdparty\CastleProjects\build\net-2.0\release\Castle.ActiveRecord.dll</HintPath>
+ </Reference>
+ <Reference Include="Castle.MonoRail.Framework, Version=1.0.3.0,
Culture=neutral, PublicKeyToken=407dd0808d44fbdc,
processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\Thirdparty\CastleProjects\build\net-2.0\release\Castle.MonoRail.Framework.dll</HintPath>
+ </Reference>
+ <Reference Include="Enyim.Caching, Version=1.2.0.0, Culture=neutral,
PublicKeyToken=cec98615db04012e, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\Thirdparty\Memcached\Enyim.Caching.dll</HintPath>
+ </Reference>
+ <Reference Include="log4net, Version=1.2.10.0, Culture=neutral,
PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\Thirdparty\CastleProjects\build\net-2.0\release\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="NHibernate, Version=2.0.0.1001, Culture=neutral,
PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+
<HintPath>..\Thirdparty\CastleProjects\build\net-2.0\release\NHibernate.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="ARSessionItem.cs" />
+ <Compile Include="CustomSessionState\MemCacheSessionFactory.cs" />
+ <Compile Include="CustomSessionState\MemCachedSession.cs" />
+ <Compile Include="MemCacheDB.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Transcoders\FastSerializerTranscoder.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ActiveRecord.config">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <COMReference Include="ADODB">
+ <Guid>{2A75196C-D9EB-4129-B803-931327F72D5C}</Guid>
+ <VersionMajor>2</VersionMajor>
+ <VersionMinor>8</VersionMinor>
+ <Lcid>0</Lcid>
+ <WrapperTool>tlbimp</WrapperTool>
+ <Isolated>False</Isolated>
+ </COMReference>
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\AgileJedi.Core\AgileJedi.Core.csproj">
+ <Project>{ED098531-C1E6-4565-BBD3-0EFC7398F588}</Project>
+ <Name>AgileJedi.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the
targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file

Added:
trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/MemCacheSessionFactory.cs
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/MemCacheSessionFactory.cs
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,47 @@
+using System;
+using Castle.MonoRail.Framework.Extensions.Session;
+using System.Collections;
+using Castle.ActiveRecord.Framework.Config;
+using Castle.ActiveRecord;
+using log4net;
+using FrameworkAlias = Castle.MonoRail.Framework;
+
+namespace AgileJedi.MemcachedForMonorail.CustomSessionStateExtensions
+{
+ public class MemCacheSessionFactory : ICustomSessionFactory
+ {
+ private static bool _dbIsInitialized = false;
+ private ILog _logger =
LogManager.GetLogger(typeof(MemCacheSessionFactory));
+
+ public MemCacheSessionFactory()
+ {
+ if (!_dbIsInitialized)
+ {
+
+ string configPath =
System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "ActiveRecord.config");
+
ActiveRecordStarter.Initialize(System.Reflection.Assembly.GetAssembly(typeof(MemCacheSessionFactory)),
+ new XmlConfigurationSource(configPath));
+
+ ActiveRecordStarter.UpdateSchema(typeof(ARSessionItem));
+ _dbIsInitialized = true;
+ }
+ }
+
+ #region ICustomSessionFactory Members
+ IDictionary
ICustomSessionFactory.ObtainSession(FrameworkAlias.IEngineContext context)
+ {
+ // check memcache for session
+ IDictionary session = (IDictionary)new
MemCachedSessionDictionary(new
Guid(context.UnderlyingContext.Session.SessionID));
+ return session;
+ }
+
+ void ICustomSessionFactory.PersistSession(IDictionary session,
FrameworkAlias.IEngineContext context)
+ {
+ if (session is MemCachedSessionDictionary)
+ {
+ ((MemCachedSessionDictionary)session).persistValues();
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file

Added:
trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/MemCachedSession.cs
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail/CustomSessionState/MemCachedSession.cs
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,535 @@
+using System;
+using System.Collections.Generic;
+using Enyim.Caching;
+using Enyim.Caching.Memcached;
+using System.Collections;
+using log4net;
+using Castle.ActiveRecord;
+using Castle.ActiveRecord.Framework.Config;
+using NHibernate.Mapping;
+
+namespace AgileJedi.MemcachedForMonorail.CustomSessionStateExtensions
+{
+ /// <summary>
+ /// Implements a Specialized Idictionary for use in Monorail Sessions
+ ///
+ /// </summary>
+ /// <remarks>Uses a dictionary to store data on the backend. Once the
persist method is called then the values are written
+ /// to the memcached store and cleared from the dictionary.</remarks>
+ /// <seealso cref="MemCacheSessionFactory"/>
+ public class MemCachedSessionDictionary : IDictionary, IDisposable
+ {
+ /// <summary>
+ /// Name of the default config section to use
+ /// </summary>
+ public const string STR_Sessionstate = "sessionstate";
+
+ #region Fields
+ private MemcachedClient _mcClient;
+ private Guid _sessionId;
+ private ILog _logger =
LogManager.GetLogger(typeof(MemCachedSessionDictionary));
+ private List<string> _changes = new List<string>();
+ private bool _useDatabase = true;
+ private bool _useActiveRecord = true;
+ private static MemCacheDB rawDBWriter = new MemCacheDB();
+ private static Boolean _arDBInitialized = false;
+ private static Boolean _rawDBInitialized = false;
+ private IDictionary _tempDictionary = new Hashtable();
+ private IList _keysToBePersisted = new
System.Collections.ArrayList();
+ #endregion
+
+ #region Constructors
+
+ /// <summary>
+ /// Initializes a new instance of the MemCachedSession class.
+ /// </summary>
+ /// <param name="sessionId">The unique ID for the session being
initialized from memcached </param>
+ public MemCachedSessionDictionary(Guid sessionId)
+ : this(sessionId, STR_Sessionstate)
+ {
+
+
+ }
+
+ public MemCachedSessionDictionary(Guid sessionId, string configSection)
+ : this(sessionId, new Enyim.Caching.MemcachedClient(configSection))
+ {
+
+ }
+
+ public MemCachedSessionDictionary(Guid sessionId, MemcachedClient client)
+ {
+ _sessionId = sessionId;
+ _mcClient = client;
+ this._SessionTimeToLiveMinutes = 20;
+ }
+
+ #endregion
+
+ public override string ToString()
+ {
+ return String.Format("Memcached Session [{0}] with {1} keys to
be persisted.", _sessionId, _keysToBePersisted.Count);
+ }
+
+ public System.Collections.IList GetChangedFields()
+ {
+ return _keysToBePersisted;
+ }
+
+ /// <summary>
+ /// Write all temp values to memcached and clears the
+ /// temporary dictionary.
+ /// </summary>
+ public void persistValues()
+ {
+ foreach(string key in _keysToBePersisted)
+ {
+ if (!_tempDictionary.Contains(key))
+ {
+ continue;
+ }
+ this.WriteMemCachedValue(key, _tempDictionary[key]);
+ if (this._useDatabase)
+ PersistItem(key, _tempDictionary[key]);
+ }
+ _keysToBePersisted.Clear();
+
+ }
+
+ #region IDictionary Members
+
+ bool IDictionary.IsFixedSize
+ {
+ get { return false; }
+ }
+
+ public IDictionaryEnumerator GetEnumerator()
+ {
+ throw new Exception("The method or operation is not implemented.");
+ }
+
+ /// <summary>
+ /// Adds or replaces an item in the session dictionary.
+ /// </summary>
+ /// <param name="key"></param>
+ /// <param name="value"></param>
+ /// <remarks>All writing to the session should come through this
method. It tracks which items have changed and need to be persisted
+ /// to memcached.</remarks>
+ public void Add(object key, object value)
+ {
+ if (value == null)
+ {
+ this.Remove(key);
+ return;
+ }
+
+ this._tempDictionary[key] = value;
+ if (!this._keysToBePersisted.Contains(key))
+ {
+ _keysToBePersisted.Add(key);
+ }
+ }
+
+ public bool ContainsKey(object key)
+ {
+ return ((_tempDictionary.Contains(key) && _tempDictionary[key] != null)
|| this[key] != null);
+
+ }
+
+
+ public void Remove(object key)
+ {
+ try
+ {
+ this.RemoveMemCachedValue(key.ToString());
+ if (this._useDatabase)
+ {
+ this.RemoveDBValue(key.ToString());
+ }
+ this._tempDictionary.Remove(key);
+
+ }
+ catch (Exception ex)
+ {
+ _logger.Warn("Exception occurred whle trying to remove from
memcached", ex);
+ return ;
+ }
+
+ return;
+ }
+
+ public bool TryGetValue(object key, out object value)
+ {
+ value = null;
+ try
+ {
+ value = this[key];
+ return value != null;
+ }
+ catch
+ {
+ return false;
+ }
+
+
+ }
+
+ /// <summary>
+ /// This property is not currently supported
+ /// </summary>
+ public ICollection Values
+ {
+ get { throw new NotSupportedException("The method or operation is not
implemented."); }
+ }
+ /// <summary>
+ /// Retrieve key values
+ /// </summary>
+ /// <param name="key">the of key of the value to be returned</param>
+ /// <returns>Returns the value associated with the provided <paramref
name="key"/>.
+ /// For keys that do not exist a <see cref="null"/> value will be
returned.</returns>
+ /// <remarks>Most of the heavy lifting is done here. When values
are retrieved they
+ /// are placed in both memcached and the local tempDictionary. The
local temp dictionary works because we can
+ /// assume that the client is connected to only one node at a
time.</remarks>
+ public object this[object key]
+ {
+ get
+ {
+
+ if (this._tempDictionary.Contains(key))
+ {
+ return _tempDictionary[key];
+ }
+
+ object returnValue;
+ returnValue = GetMemCachedValue(key);
+
+ if (returnValue == null){
+
+ returnValue = RetrievePersistedItem(key.ToString());
+ if (returnValue != null)
+ this.WriteMemCachedValue(key, returnValue);
+ }
+
+ ///
+ /// Persist the value to the tempDictionary
+ ///
+ _tempDictionary[key] = returnValue;
+ return returnValue;
+
+
+ }
+ set
+ {
+ this.Add(key, value);
+ }
+ }
+
+ #endregion
+
+ #region ICollection Members
+
+ public ICollection Keys
+ {
+ get
+ {
+
+ // List<string> keysList = _mcClient.Get<List<string>>(_sessionId
+ ":sessionkeys");
+ // if (keysList == null)
+ // {
+ // keysList = new List<string>();
+ // UpdateKeys(keysList);
+ // }
+ // return keysList;
+ throw new NotSupportedException("Support for the Keys collection may
be added later...at this time it is too costly to track keys.");
+ }
+ }
+
+ public void Clear()
+ {
+ this._tempDictionary.Clear();
+ this.IncrementRevision();
+ if (_useDatabase)
+ {
+ if (_useActiveRecord)
+ ARSessionItem.RemoveSession(this._sessionId);
+ else
+ rawDBWriter.RemoveSession(this._sessionId);
+ }
+ }
+
+ public bool Contains(object key)
+ {
+ return this.ContainsKey(key);
+ }
+
+
+ /// <summary>
+ /// For performance reasons we done implement this method!
+ /// </summary>
+ /// <param name="array"></param>
+ /// <param name="arrayIndex"></param>
+ public void CopyTo(System.Array array, int arrayIndex)
+ {
+ throw new NotSupportedException("The method or operation is not
implemented.");
+ }
+
+ object ICollection.SyncRoot
+ {
+ get { return null; }
+ }
+
+ bool ICollection.IsSynchronized{
+
+ get { return true; }
+ }
+
+ public int Count
+ {
+ get { throw new NotSupportedException("The method or operation is not
implemented."); }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return false; }
+ }
+
+
+ #endregion
+
+ #region IEnumerable Members
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ throw new Exception("The method or operation is not implemented.");
+ }
+
+ #endregion
+
+ #region Properties
+
+ /// <summary>
+ /// Used inernally to get the key that the current revision
+ /// number is stored under
+ /// </summary>
+ public string RevisionKey
+ {
+ get { return String.Format("session.{0}.rev", _sessionId); }
+ }
+
+ public int GetRevision()
+ {
+ return _mcClient.Get<int>(this.RevisionKey);
+ }
+ public Boolean UseDatabase
+ {
+ get { return this._useDatabase; }
+ set { this._useDatabase = value; }
+ }
+
+ public bool UseActiveRecord
+ {
+ get { return _useActiveRecord; }
+ set { _useActiveRecord = value; }
+ }
+
+ private double _SessionTimeToLiveMinutes;
+ public double SessionTimeToLiveMinutes
+ {
+ get { return _SessionTimeToLiveMinutes; }
+ set { _SessionTimeToLiveMinutes = value; }
+ }
+ #endregion
+
+ #region Private Members
+
+ private string GetMemCachedKey(string sessionKey)
+ {
+ return string.Format("session.{0}.rev.{1}.{2}", _sessionId,
GetRevision(), sessionKey);
+ }
+
+ /// <summary>
+ /// Used internally to increment the session revision. The Revision
+ /// is incremented when ever the session is cleared. This revision is
+ /// used to simulate namespaces. Incrementing the revision simulates
+ /// the session being cleared.
+ /// </summary>
+ private void IncrementRevision()
+ {
+ _mcClient.Store(StoreMode.Add, this.RevisionKey, 1,
TimeSpan.FromMinutes(this.SessionTimeToLiveMinutes + 15));
+ long newRevision = _mcClient.Increment(this.RevisionKey, 1);
+ _logger.InfoFormat("New Revision {0} for session {1}",
newRevision.ToString(), _sessionId);
+ }
+
+ private object GetMemCachedValue(object key)
+ {
+ return _mcClient.Get(GetMemCachedKey(key.ToString()));
+ }
+
+ private void WriteMemCachedValue(object key, object value)
+ {
+ _mcClient.Store(StoreMode.Set, GetMemCachedKey(key.ToString()), value,
GetTimeToLive());
+ }
+
+ private void RemoveMemCachedValue(string key)
+ {
+ _mcClient.Remove(GetMemCachedKey(key));
+ }
+
+ private TimeSpan GetTimeToLive()
+ {
+ return TimeSpan.FromMinutes(this.SessionTimeToLiveMinutes);
+ }
+ #endregion
+
+ #region DB Persistence Methods
+
+ /// <summary>
+ /// Initializes ActiveRecord's connection to the database.
+ /// </summary>
+ /// <param name="path">Path to an ActiveRecord config file.</param>
+ public static void SetupActiveRecordDBConnection(string path)
+ {
+ if (!_arDBInitialized)
+ {
+
+
+
ActiveRecordStarter.Initialize(System.Reflection.Assembly.GetAssembly(typeof(MemCacheSessionFactory)),
+ new XmlConfigurationSource(path));
+ ActiveRecordStarter.UpdateSchema();
+ _arDBInitialized = true;
+
+ }
+ }
+ ARSessionItem _persistedItem = new ARSessionItem();
+ /// <summary>
+ /// Persists the item to the AR layer
+ /// </summary>
+ /// <param name="key"></param>
+ /// <param name="item"></param>
+ private void PersistItem(string key, object item)
+ {
+ if (_useActiveRecord)
+ ARPersistItem(key, item);
+ else
+ RawPersistItem(key, item);
+ }
+
+ private void ARPersistItem(string key, object value)
+ {
+ if (value == null) return;
+
+ ARSessionItem sessItem = ARSessionItem.Find(_sessionId, key);
+
+ try
+ {
+ if (sessItem != null)
+ {
+ sessItem.Value = value;
+ ActiveRecordMediator.Update(sessItem);
+ }
+ else
+ {
+ sessItem = new ARSessionItem(_sessionId, key, value);
+
+ ActiveRecordMediator.Create(sessItem);
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.Fatal(String.Format("Failed to Persist Item {0} with value {1}
to ActiveRecord", key, value), ex);
+
+ throw new Exception(String.Format("Failed to Persist Item {0} with
value {1} to ActiveRecord", key, value), ex);
+ }
+
+ }
+
+ private void RawPersistItem(string key, object item)
+ {
+ if (item == null) return;
+ rawDBWriter.PersistRecord(_sessionId, key, item);
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="key"></param>
+ private void RemoveDBValue(string key)
+ {
+ if (_useActiveRecord)
+ ARRemoveItem(key);
+ else
+ RawRemoveItem(key);
+ }
+
+ private void ARRemoveItem(string key)
+ {
+ ARSessionItem arItem = ARSessionItem.Find(_sessionId, key);
+ if (arItem != null)
+ arItem.Remove();
+ }
+
+ private void RawRemoveItem(string key)
+ {
+ rawDBWriter.RemoveRecord(_sessionId, key);
+ }
+
+ /// <summary>
+ /// Retrieves the item persisted in the ActiveRecord backend
+ /// </summary>
+ /// <param name="key">The key of the item to retrieve </param>
+ /// <returns>Returns the item associated with the key. Returns null when
the item does not exist.</returns>
+ private object RetrievePersistedItem(string key)
+ {
+ if (_useActiveRecord)
+ return ARRetrieveItem(key);
+ else
+ return RawRetrieveItem(key);
+ }
+
+ private object ARRetrieveItem(string key)
+ {
+ ARSessionItem tempItem = ARSessionItem.Find(_sessionId, key);
+ return tempItem != null ? tempItem.Value : null;
+ }
+
+ private object RawRetrieveItem(string key)
+ {
+ return rawDBWriter.RetrieveRecord(_sessionId, key);
+ }
+ #endregion
+
+ public static void CloseActiveRecordDBConnection()
+ {
+ ActiveRecordStarter.ResetInitializationFlag();
+ _arDBInitialized = false;
+ }
+
+
+ public static void SetupRawDBConnection()
+ {
+ if (!_rawDBInitialized)
+ {
+ rawDBWriter.SetupConnection();
+ _rawDBInitialized = true;
+ }
+ }
+
+ public static void CloseRawDBConnection()
+ {
+ rawDBWriter.CloseConnection();
+ ActiveRecordStarter.ResetInitializationFlag();
+ _rawDBInitialized = false;
+ }
+
+ #region IDisposable Members
+
+ public void Dispose()
+ {
+ this.persistValues();
+ this._tempDictionary.Clear();
+ this._keysToBePersisted.Clear();
+ }
+
+ #endregion
+ }
+}

Added: trunk/AgileJedi.MemcachedForMonorail/MemCacheDB.cs
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail/MemCacheDB.cs Tue Nov 18 21:06:35
2008
@@ -0,0 +1,136 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ADODB;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.IO;
+using System.Data.SqlClient;
+
+namespace AgileJedi.MemcachedForMonorail
+{
+ public class MemCacheDB : IDisposable
+ {
+ private static string cnStr = "Data Source=.\\SQLEXPRESS;Initial
Catalog=MEMCACHED;Integrated Security=true;";
+ private static int guidLength = Guid.Empty.ToString().Length;
+ private static String persistSQL = "Insert Into [SessionItems]
(SessionId, [Key], ItemData) Values (@SESSIONID_VAL, @KEY_VAL,
@ITEMDATA_VAL)";
+ private static String removeSQL = "Delete From SessionItems Where
SessionId = @SESSIONID_VAL and [Key] = @KEY_VAL";
+ private static String retrieveSQL = "Select ItemData From SessionItems
Where SessionId = @SESSIONID_VAL and [Key] = @KEY_VAL";
+ private static String removeSessionSQL = "Delete From SessionItems Where
SessionId = @SESSIONID_VAL";
+
+ private SqlConnection cn;
+ private SqlCommand persistCommand, removeCommand, retrieveCommand,
clearSessionCommand;
+ private SqlDataReader reader;
+ private MemoryStream ms;
+ private BinaryFormatter serializer = new BinaryFormatter();
+ private static int SessionIndex = 0;
+ private static int KeyIndex = 1;
+
+ public void InitParams()
+ {
+ persistCommand = new SqlCommand(persistSQL, cn);
+ persistCommand.Parameters.Add(new SqlParameter("@SESSIONID_VAL",
System.Data.SqlDbType.UniqueIdentifier, 36));
+ persistCommand.Parameters.Add(new SqlParameter("@KEY_VAL",
System.Data.SqlDbType.VarChar, 50));
+ persistCommand.Parameters.Add(new SqlParameter("@ITEMDATA_VAL",
System.Data.SqlDbType.Image, int.MaxValue));
+ //persistCommand.Prepare();
+
+ removeCommand = new SqlCommand(removeSQL, cn);
+ removeCommand.Parameters.Add(new SqlParameter("@SESSIONID_VAL",
System.Data.SqlDbType.UniqueIdentifier, 36));
+ removeCommand.Parameters.Add(new SqlParameter("@KEY_VAL",
System.Data.SqlDbType.VarChar, 50));
+ //removeCommand.Prepare();
+
+ retrieveCommand = new SqlCommand(retrieveSQL, cn);
+ retrieveCommand.Parameters.Add(new SqlParameter("@SESSIONID_VAL",
System.Data.SqlDbType.UniqueIdentifier, 36));
+ retrieveCommand.Parameters.Add(new SqlParameter("@KEY_VAL",
System.Data.SqlDbType.VarChar, 50));
+ //retrieveCommand.Prepare();
+
+ clearSessionCommand = new SqlCommand(removeSessionSQL, cn);
+ clearSessionCommand.Parameters.Add(new SqlParameter("@SESSIONID_VAL",
System.Data.SqlDbType.UniqueIdentifier, 36));
+ //clearSessionCommand.Prepare();
+ }
+ public void SetupConnection()
+ {
+ if (cn != null || reader != null)
+ CloseConnection();
+ cn = new SqlConnection(cnStr);
+ cn.Open();
+ InitParams();
+ }
+
+ public void CloseConnection()
+ {
+ if (cn != null)
+ {
+ cn.Close();
+ cn = null;
+ }
+ if (reader != null)
+ {
+ reader.Close();
+ reader = null;
+ }
+ }
+
+ private void ClearState()
+ {
+ ms = null;
+ }
+
+ public void PersistRecord(Guid sessionId, String key, object value)
+ {
+ ms = new MemoryStream();
+ serializer.Serialize(ms, value);
+ ms.Position = 0;
+ persistCommand.Parameters[0].Value = sessionId;
+ persistCommand.Parameters[1].Value = key;
+ persistCommand.Parameters[2].Value = ms.ToArray();
+ persistCommand.ExecuteNonQuery();
+ }
+
+ public void RemoveRecord(Guid sessionId, string key)
+ {
+ removeCommand.Parameters[0].Value = sessionId;
+ removeCommand.Parameters[1].Value = key;
+ removeCommand.ExecuteNonQuery();
+ }
+
+ public object RetrieveRecord(Guid sessionId, string key)
+ {
+ retrieveCommand.Parameters[0].Value = sessionId;
+ retrieveCommand.Parameters[1].Value = key;
+
+ reader = retrieveCommand.ExecuteReader();
+ if (reader.Read())
+ {
+ ms = new MemoryStream((byte[])reader["ItemData"]);
+ reader.Close();
+ reader.Dispose();
+ return serializer.Deserialize(ms);
+ }
+ else
+ {
+ reader.Close();
+ reader.Dispose();
+ return null;
+ }
+ }
+ public void RemoveSession(Guid sessionId)
+ {
+ clearSessionCommand.Parameters[0].Value = sessionId;
+ clearSessionCommand.ExecuteNonQuery();
+ }
+
+ private void SetVal(int paramIndex, Object value, SqlCommand command)
+ {
+ //persistParams[paramIndex].Value = value;
+ //command.Parameters.Add(persistParams[paramIndex]);
+ }
+
+ #region IDisposable Members
+ public void Dispose()
+ {
+ CloseConnection();
+ ClearState();
+ }
+ #endregion
+ }
+}
\ No newline at end of file

Added: trunk/AgileJedi.MemcachedForMonorail/Properties/AssemblyInfo.cs
==============================================================================
--- (empty file)
+++ trunk/AgileJedi.MemcachedForMonorail/Properties/AssemblyInfo.cs Tue Nov
18 21:06:35 2008
@@ -0,0 +1,37 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Resources;
+
+// General Information about an assembly is controlled through the
following
+// set of attributes. Change these attribute values to modify the
information
+// associated with an assembly.
+[assembly: AssemblyTitle("AgileJedi.MemcachedForMonorail")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("AgileJedi")]
+[assembly: AssemblyProduct("AgileJedi.MemcachedForMonorail")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is
exposed to COM
+[assembly: Guid("a449b4aa-3db7-4b5d-b4e9-9bb8db3656b4")]
+
+// Version information for an assembly consists of the following four
values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and
Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0")]
+[assembly: AssemblyFileVersion("1.0.0")]
+[assembly: NeutralResourcesLanguageAttribute("en")]

Added:
trunk/AgileJedi.MemcachedForMonorail/Transcoders/FastSerializerTranscoder.cs
==============================================================================
--- (empty file)
+++
trunk/AgileJedi.MemcachedForMonorail/Transcoders/FastSerializerTranscoder.cs
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Enyim.Caching.Memcached;
+using AgileJedi.Core.Serialization;
+
+namespace AgileJedi.MemcachedForMonorail.Transcoders
+{
+ public class FastSerializerTranscoder : ITranscoder
+ {
+ #region ITranscoder Members
+
+ public object Deserialize(CacheItem item)
+ {
+ SerializationReader reader = new SerializationReader(item.Data.Array);
+ object returnObject = reader.ReadObject();
+ return returnObject;
+ }
+
+ public CacheItem Serialize(object o)
+ {
+ CacheItem cacheitem = new CacheItem();
+ SerializationWriter writer = new SerializationWriter();
+
+ writer.OptimizeForSize = false;
+ writer.WriteObject(o);
+
+ cacheitem.Data = new ArraySegment<byte>(writer.ToArray());
+
+ return cacheitem;
+
+ }
+
+ #endregion
+ }
+}

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.Collections.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.Indexing.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.Util.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.XPath.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Bamboo.Prevalence.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.CodeDom.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Compiler.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Extensions.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Interpreter.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Parser.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.Useful.dll
==============================================================================
Binary file. No diff available.

Added: trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Lang.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.Microsoft.Build.Tasks.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Boo.NAnt.Tasks.dll
==============================================================================
Binary file. No diff available.

Added: trunk/Thirdparty/CastleProjects/build/net-2.0/release/Cassini.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.ActiveRecord.dll
==============================================================================
Binary file. No diff available.

Added:
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.ActiveRecord.xml
==============================================================================
--- (empty file)
+++
trunk/Thirdparty/CastleProjects/build/net-2.0/release/Castle.ActiveRecord.xml
Tue Nov 18 21:06:35 2008
@@ -0,0 +1,9874 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>Castle.ActiveRecord</name>
+ </assembly>
+ <members>
+ <member name="T:Castle.ActiveRecord.ValidateIsUniqueAttribute">
+ <summary>
+ Validate that the property's value is unique in the database
when saved
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.ValidateIsUniqueAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.ValidateIsUniqueAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.ValidateIsUniqueAttribute.#ctor(System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.ValidateIsUniqueAttribute"/> class.
+ </summary>
+ <param name="errorMessage">The error message.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.ValidateIsUniqueAttribute.Build">
+ <summary>
+ Constructs and configures an <see
cref="T:Castle.Components.Validator.IValidator"/>
+ instance based on the properties set on the attribute instance.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="T:Castle.ActiveRecord.ActiveRecordAttribute">
+ <summary>
+ Associate meta information related to the
+ desired table mapping.
+ </summary>
+ <example>
+ <code>
+ [ActiveRecord("tb_Order")]
+ public class Order : ActiveRecordBase
+ {
+ }
+ </code>
+ </example>
+ <remarks>
+ If no table is specified, the class name
+ is used as table name
+ </remarks>
+ </member>
+ <member name="T:Castle.ActiveRecord.BaseAttribute">
+ <summary>
+ Implement common properties shared by some
+ attributes
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.WithAccessAttribute">
+ <summary>
+ Base class that allows specifying an access strategy to
get/set the value for an object' property.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.WithAccessAttribute.Access">
+ <summary>
+ Gets or sets the access strategy for this property
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.WithAccessAttribute.CustomAccess">
+ <summary>
+ Gets or sets the custom access strategy
+ </summary>
+ <value>The custom access.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.WithAccessAttribute.AccessString">
+ <summary>
+ Gets the access strategy string for NHibernate's mapping.
+ </summary>
+ <value>The access string.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.BaseAttribute.Cache">
+ <summary>
+ Gets or sets the cache strategy to use for this property
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BaseAttribute.CacheRegion">
+ <summary>
+ Gets or sets the a name for a cache region.
+ </summary>
+ <value>The cache region name.</value>
+ </member>
+ <member name="M:Castle.ActiveRecord.ActiveRecordAttribute.#ctor">
+ <summary>
+ Uses the class name as table name
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.ActiveRecordAttribute.#ctor(System.String)">
+ <summary>
+ Associates the specified table with the target type
+ </summary>
+ <param name="table"></param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.ActiveRecordAttribute.#ctor(System.String,System.String)">
+ <summary>
+ Associates the specified table and schema with the target type
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Table">
+ <summary>
+ Gets or sets the table name associated with the type
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Schema">
+ <summary>
+ Gets or sets the schema name associated with the type
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Proxy">
+ <summary>
+ Associates a proxy type with the target type
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.DiscriminatorColumn">
+ <summary>
+ Gets or sets the Discriminator column for
+ a table inheritance modeling
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.DiscriminatorType">
+ <summary>
+ Gets or sets the column type (like string or integer)
+ for the discriminator column
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.DiscriminatorValue">
+ <summary>
+ Gets or sets the value that represents the
+ target class on the discriminator column
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.DiscriminatorLength">
+ <summary>
+ Gets or sets the length of the discriminator
+ column (valid for string type only)
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Where">
+ <summary>
+ SQL condition to retrieve objects
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Lazy">
+ <summary>
+ Enable lazy loading for the type
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.LazySpecified">
+ <summary>
+ Gets a value indicating whether explicit lazy behavior was
specified.
+ If explicit lazy behavior was not specified, it goes to the
configuration to decide if the type should
+ be lazy or not.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.DynamicUpdate">
+ <summary>
+ From NHibernate documentation:
+ Specifies that UPDATE SQL should be
+ generated at runtime and contain only
+ those columns whose values have changed.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.DynamicInsert">
+ <summary>
+ From NHibernate documentation:
+ Specifies that INSERT SQL should be
+ generated at runtime and contain only
+ the columns whose values are not null.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.Persister">
+ <summary>
+ From NHibernate documentation:
+ Specifies a custom <see
cref="T:NHibernate.Persister.Entity.IEntityPersister"/>.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.SelectBeforeUpdate">
+ <summary>
+ From NHibernate documentation:
+ Specifies that NHibernate should never perform an SQL UPDATE
+ unless it is certain that an object is actually modified. In
+ certain cases (actually, only when a transient object has
+ been associated with a new session using update()), this means
+ that NHibernate will perform an extra SQL SELECT to determine
+ if an UPDATE is actually required.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.Polymorphism">
+ <summary>
+ From NHibernate documentation:
+ Determines whether implicit or explicit query polymorphism is
used.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Mutable">
+ <summary>
+ From NHibernate documentation:
+ Specifies that instances of the class are (not) mutable.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.BatchSize">
+ <summary>
+ From NHibernate documentation:
+ Specify a "batch size" for fetching instances of
+ this class by identifier.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.ActiveRecordAttribute.Locking">
+ <summary>
+ From NHibernate documentation:
+ Determines the optimistic locking strategy.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.ActiveRecordAttribute.UseAutoImport">
+ <summary>
+ From NHibernate documentation:
+ The auto-import attribute lets us use
+ unqualified class names in the query language,
+ by default. The assembly and namespace attributes
+ specify the assembly where persistent classes
+ are located and the namespace they are declared in.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.ActiveRecordSkipAttribute">
+ <summary>
+ Denotes that the specific class -
+ which is an <see
cref="T:Castle.ActiveRecord.ActiveRecordBase"/> subclass
+ should not be processed by the framework
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.AnyAttribute">
+ <summary>
+ This attribute is used to create &lt;any/&gt; assoication, a
polymorphic assoication to classes that
+ do not share a common base class.
+ <example>
+ Assuming we have two classes that implement IPayment,
CreditCard and BankAccount, and we want a property
+ that can point ot either one of them. We can map it like this:
+ <code>
+ [Any(typeof (long), MetaType=typeof (string),
+ TypeColumn="BILLING_DETAILS_TYPE",
+ IdColumn="BILLING_DETAILS_ID",
+ Cascade=CascadeEnum.SaveUpdate)]
+ [Any.MetaValue("CREDIT_CARD", typeof (CreditCard))]
+ [Any.MetaValue("BANK_ACCOUNT", typeof (BankAccount))]
+ public IPayment Payment { get { ... } set { ... } }
+ </code>
+ The [Any] attribute specify that the id type is long, that
the meta type (the type that specify the type of
+ the class) is string.
+ The TypeColumn = "BILLING_DETAILS_TYPE" means that Active
Record will look in this column to figure out what the type
+ of the associated entity is.
+ The IdColumn = "BILLING_DETAILS_ID" means that Active Record
will use this column in conjuction with the type of the entity
+ to find the relevant entity. This is the id of the associated
entity (which can point to either back account or credit card).
+ Cascade has the usual semantics.
+
+ [Any.MetaValue("CREDIT_CARD", typeof (CreditCard))] - means
that when Active Record encounters a "CREDIT_CARD" value in
+ the "BILLING_DETAILS_TYPE", is assumes that the id in
the "BILLING_DETAILS_ID" is the id of a CreditCard entity.
+
+ [Any.MetaValue("BANK_ACCOUNT", typeof (BankAccount))] - same,
just for "BANK_ACCOUNT" meaning that the id in "BILLING_DETAILS_ID"
+ is an id of a bank account.
+ </example>
+ </summary>
+ <remarks>
+ This is supplied for advanced sceanrios.
+ </remarks>
+ </member>
+ <member name="M:Castle.ActiveRecord.AnyAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.AnyAttribute"/> class.
+ </summary>
+ <remarks>Using this constructor defaults the idType to
Int32</remarks>
+ </member>
+ <member
name="M:Castle.ActiveRecord.AnyAttribute.#ctor(System.Type)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.AnyAttribute"/> class.
+ </summary>
+ <param name="idType">Type of the id.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.IdType">
+ <summary>
+ Gets or sets the type of the id.
+ </summary>
+ <value>The type of the id.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.MetaType">
+ <summary>
+ Gets or sets the type of the meta column
+ </summary>
+ <value>The type of the meta.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.Cascade">
+ <summary>
+ Gets or sets the cascade options
+ </summary>
+ <value>The cascade.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.TypeColumn">
+ <summary>
+ Gets or sets the type column name
+ </summary>
+ <value>The type column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.IdColumn">
+ <summary>
+ Gets or sets the id column name
+ </summary>
+ <value>The id column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.Index">
+ <summary>
+ Gets or sets the index column name
+ </summary>
+ <value>The index.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.Insert">
+ <summary>
+ Gets or sets a value indicating whether the column should be
inserted when inserting.
+ </summary>
+ <value><c>true</c> if should insert; otherwise,
<c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.Update">
+ <summary>
+ Gets or sets a value indicating whether the column should be
is updated when updating.
+ </summary>
+ <value><c>true</c> if should update; otherwise,
<c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.AnyAttribute.NotNull">
+ <summary>
+ Gets or sets a value indicating whether this property cannot
be null.
+ </summary>
+ <value><c>true</c> if this property cannot be null; otherwise,
<c>false</c>.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.Any">
+ <summary>
+ Avoids the AnyAttribute.MetaValue syntax
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.Any.MetaValueAttribute">
+ <summary>
+ This is used to specify a meta value in an [Any] assoication
+ Any.MetaValue is used to connect a value (such
as "CREDIT_CARD") to its type ( typeof(CreditCard) ).
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.Any.MetaValueAttribute.#ctor(System.String,System.Type)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.Any.MetaValueAttribute"/> class.
+ </summary>
+ <param name="value">The value.</param>
+ <param name="clazz">The clazz.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.Any.MetaValueAttribute.System#IComparable#CompareTo(System.Object)">
+ <summary>
+ This is here so the XmlGenerationVisitor will always
+ output the meta-values in consistent order, to aid the tests.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.Any.MetaValueAttribute.Value">
+ <summary>
+ Gets or sets the value for this class
+ </summary>
+ <value>The value.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.Any.MetaValueAttribute.Class">
+ <summary>
+ Gets or sets the class that match this value
+ </summary>
+ <value>The class.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.NotFoundBehaviour">
+ <summary>
+ Define how broken relations should be handled.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.NotFoundBehaviour.Default">
+ <summary>
+ Throw an exception when the relation is broken.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.NotFoundBehaviour.Exception">
+ <summary>
+ Throw an exception when the relation is broken.
+ </summary>
+ <remarks>this is the default behaviour</remarks>
+ </member>
+ <member name="F:Castle.ActiveRecord.NotFoundBehaviour.Ignore">
+ <summary>
+ Ignore the broken relation and update
+ the FK to null on the next save.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.BelongsToAttribute">
+ <summary>
+ Maps a one to one association.
+ </summary>
+ <example>
+ <code>
+ public class Post : ActiveRecordBase
+ {
+ ...
+
+ [BelongsTo("blogid")]
+ public Blog Blog
+ {
+ get { return _blog; }
+ set { _blog = value; }
+ }
+ </code>
+ </example>
+ <remarks>
+ Please note that the 'blogid' foreign key lies on the 'Post'
table.
+ </remarks>
+ </member>
+ <member name="M:Castle.ActiveRecord.BelongsToAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.BelongsToAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.BelongsToAttribute.#ctor(System.String)">
+ <summary>
+ Indicates the name of the column to be used on the association.
+ Usually the name of the foreign key field on the underlying
database.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Type">
+ <summary>
+ Defines the target type of the association. It's usually
inferred from the property type.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Column">
+ <summary>
+ Defines the column used by association (usually a foreign key)
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.BelongsToAttribute.CompositeKeyColumns">
+ <summary>
+ Defines the Composite Key columns used by association (aka
Natural Keys).
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Cascade">
+ <summary>
+ Defines the cascading behavior of this association.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.OuterJoin">
+ <summary>
+ Defines the outer join behavior of this association.
+ NHibernate has deprecated the outer-join attribute so this
property is
+ marked obsolete - it now converts to and from the fetch value.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Fetch">
+ <summary>
+ Chooses between outer-join fetching
+ or sequential select fetching.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.BelongsToAttribute.PropertyRef">
+ <summary>
+ From NHibernate docs: The name of a property of the
+ associated class that is joined to the primary key
+ of this class. If not specified, the primary key of
+ the associated class is used.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Update">
+ <summary>
+ Set to <c>false</c> to ignore this association when updating
entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Insert">
+ <summary>
+ Set to <c>false</c> to ignore this association when inserting
entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.NotNull">
+ <summary>
+ Indicates whether this association allows nulls or not.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.Unique">
+ <summary>
+ Indicates whether this association is unique.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.BelongsToAttribute.NotFoundBehaviour">
+ <summary>
+ Gets or sets the way broken relations are handled.
+ </summary>
+ <value>The behaviour.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.UniqueKey">
+ <summary>
+ From NHibernate documentation:
+ A unique-key attribute can be used to group columns
+ in a single unit key constraint.
+ </summary>
+ <value>unique key name</value>
+ <remarks>
+ Currently, the
+ specified value of the unique-key attribute is not
+ used to name the constraint, only to group the columns
+ in the mapping file.
+ </remarks>
+ </member>
+ <member name="P:Castle.ActiveRecord.BelongsToAttribute.ForeignKey">
+ <summary>
+ Gets and sets the name of the foreign key constraint
+ generated for an association.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.CollectionIDType">
+ <summary>
+ Defines the values for the generator for the Collection Id
values.w
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.Identity">
+ <summary>
+ Use Identity column (auto number)
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.Sequence">
+ <summary>
+ Use a sequence
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.HiLo">
+ <summary>
+ Use the HiLo algorithm to get the next value
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.SeqHiLo">
+ <summary>
+ Use a sequence and a HiLo algorithm - better performance on
Oracle
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.UuidHex">
+ <summary>
+ Use the hex representation of a unique identifier
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.UuidString">
+ <summary>
+ Use the string representation of a unique identifier
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.Guid">
+ <summary>
+ Generate a Guid for the primary key
+ Note: You should prefer using GuidComb over this value.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.GuidComb">
+ <summary>
+ Generate a Guid in sequence, so it will have better insert
performance in the DB.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.Assigned">
+ <summary>
+ The key value is always assigned.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CollectionIDType.Foreign">
+ <summary>
+ This is a foreign key to another table
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.CollectionIDAttribute">
+ <summary>
+ Used for a collection that requires a collection id.
+ </summary>
+ <example><code>
+ public class Blog : ActiveRecordBase
+ {
+ ...
+
+ [HasManyAndBelongs/HasMany]
+ [CollectionIDAttribute(CollectionIDAttribute.Native)]
+ public int Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+ </code></example>
+ </member>
+ <member
name="M:Castle.ActiveRecord.CollectionIDAttribute.#ctor(Castle.ActiveRecord.CollectionIDType,System.String,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.CollectionIDAttribute"/> class.
+ </summary>
+ <param name="generator">The generator.</param>
+ <param name="column">The column.</param>
+ <param name="ColumnType">Type of the column.</param>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CollectionIDAttribute.Generator">
+ <summary>
+ Gets or sets the generator.
+ </summary>
+ <value>The generator.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.CollectionIDAttribute.Column">
+ <summary>
+ Gets or sets the column name
+ </summary>
+ <value>The column.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CollectionIDAttribute.ColumnType">
+ <summary>
+ Gets or sets the type of the column.
+ </summary>
+ <value>The type of the column.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.CompositeKeyAttribute">
+ <summary>
+ Defines that the target property is a composite key
+ for the scope class
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CompositeKeyAttribute.UnsavedValue">
+ <summary>
+ Gets or sets the unsaved value.
+ </summary>
+ <value>The unsaved value.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.CompositeUserTypeAttribute">
+ <summary>
+ Maps the property to db using a NHibernate's <see
cref="T:NHibernate.UserTypes.ICompositeUserType"/>.
+ </summary>
+ <remarks>
+ You should specify the column names and the ICompositeUserType
implementor.
+ </remarks>
+ <example>
+ <code>
+ [CompositeUserType(typeof(DoubleStringType), new string[]
{"Product_FirstName", "Product_LastName"})]
+ public string[] Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+ </code>
+ or
+ <code>
+ [CompositeUserType(
+ typeof(DoubleStringType),
+ new
string[]{"Manufacturer_FirstName", "Manufacturer_LastName"},
+ Length = new int[] {4, 5} )]
+ public string[] ManufacturerName
+ {
+ get { return manufacturerName; }
+ set { manufacturerName = value; }
+ }
+ </code>
+ </example>
+ </member>
+ <member
name="M:Castle.ActiveRecord.CompositeUserTypeAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.CompositeUserTypeAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.CompositeUserTypeAttribute.#ctor(System.Type,System.String[])">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.CompositeUserTypeAttribute"/> class.
+ </summary>
+ <param name="compositeType">Type of the ICompositeUserType
implmentor.</param>
+ <param name="columnNames">The column names.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.CompositeUserTypeAttribute.#ctor(System.String,System.String[])">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.CompositeUserTypeAttribute"/> class.
+ </summary>
+ <param name="compositeTypeName">Type name of the
ICompositeUserType implmentor.</param>
+ <param name="columnNames">The column names.</param>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CompositeUserTypeAttribute.CompositeType">
+ <summary>
+ Gets or sets the type of the ICompositeUserType implementor.
+ </summary>
+ <value>The type of the composite.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CompositeUserTypeAttribute.ColumnNames">
+ <summary>
+ Gets or sets the column names.
+ </summary>
+ <value>The column names.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CompositeUserTypeAttribute.Length">
+ <summary>
+ Gets or sets the length of the columns.
+ </summary>
+ <value>The columns length.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CompositeUserTypeAttribute.Update">
+ <summary>
+ Set to <c>false</c> to ignore this property when updating
entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.CompositeUserTypeAttribute.Insert">
+ <summary>
+ Set to <c>false</c> to ignore this property when inserting
entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.OptimisticLocking">
+ <summary>
+ Defines the values for optimistic locking
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OptimisticLocking.None">
+ <summary>
+ do not use optimistic locking
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OptimisticLocking.Version">
+ <summary>
+ check the version/timestamp columns
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OptimisticLocking.Dirty">
+ <summary>
+ check the changed columns
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OptimisticLocking.All">
+ <summary>
+ check all columns
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.Polymorphism">
+ <summary>
+ Define the polymorphism options
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.Polymorphism.Implicit">
+ <summary>
+ Implicit polymorphism
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.Polymorphism.Explicit">
+ <summary>
+ Explicit polymorphism
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.CacheEnum">
+ <summary>
+ Define the caching options
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CacheEnum.Undefined">
+ <summary>
+ Default value, no caching
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CacheEnum.ReadOnly">
+ <summary>
+ Read only cache - use for cases where no write are performed.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CacheEnum.ReadWrite">
+ <summary>
+ Read write cache
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CacheEnum.NonStrictReadWrite">
+ <summary>
+ Read write cache with looser semantics.
+ Check NHibernate's documentation for the detials.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.OuterJoinEnum">
+ <summary>
+ Define outer join options
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OuterJoinEnum.Auto">
+ <summary>
+ Let NHibernate decide what to do
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OuterJoinEnum.True">
+ <summary>
+ Use outer join
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.OuterJoinEnum.False">
+ <summary>
+ Do not use outer join
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.FetchEnum">
+ <summary>
+ Define the possible fetch option values
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.FetchEnum.Unspecified">
+ <summary>
+ Let NHibernate decide what to do here
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.FetchEnum.Join">
+ <summary>
+ Use a JOIN to load the data
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.FetchEnum.Select">
+ <summary>
+ Use a seperate SELECT statement to load the data
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.FetchEnum.SubSelect">
+ <summary>
+ Use a seperate SELECT statement to load the data, re-running
the original query in a subselect
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.CascadeEnum">
+ <summary>
+ Defines the cascading behaviour of this association.
+ </summary>
+ <remarks>
+ Entities has associations to other objects, this may be an
association to a single item (<see
cref="T:Castle.ActiveRecord.BelongsToAttribute"/>)
+ or an association to a collection (<see
cref="T:Castle.ActiveRecord.HasManyAttribute"/>, <see
cref="T:Castle.ActiveRecord.HasManyToAnyAttribute"/>).
+ At any rate, you are able to tell NHibernate to automatically
traverse an entity's associations, and act according
+ to the cascade option. For instance, adding an unsaved entity
to a collection with <see
cref="F:Castle.ActiveRecord.CascadeEnum.SaveUpdate"/>
+ cascade will cause it to be saved along with its parent
object, without any need for explicit instructions on our side.
+ </remarks>
+ </member>
+ <member name="F:Castle.ActiveRecord.CascadeEnum.None">
+ <summary>
+ No cascading. This is the default.
+ The cascade should be handled manually.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CascadeEnum.All">
+ <summary>
+ Cascade save, update and delete.
+ When the object is saved, updated or deleted, the associations
will be checked
+ and the objects found will also be saved, updated or deleted.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CascadeEnum.SaveUpdate">
+ <summary>
+ Cascade save and update.
+ When the object is saved or updated, the associations will be
checked and any object that requires
+ will be saved or updated (including saving or updating the
associations in many-to-many scenario).
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.CascadeEnum.Delete">
+ <summary>
+ Cascade delete.
+ When the object is deleted, all the objects in the association
will be deleted as well.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.ManyRelationCascadeEnum">
+ <summary>
+ Defines the cascading behaviour of this association.
+ </summary>
+ <remarks>
+ Entities has associations to other objects, this may be an
association to a single item (<see
cref="T:Castle.ActiveRecord.BelongsToAttribute"/>)
+ or an association to a collection (<see
cref="T:Castle.ActiveRecord.HasManyAttribute"/>, <see
cref="T:Castle.ActiveRecord.HasManyToAnyAttribute"/>).
+ At any rate, you are able to tell NHibernate to automatically
traverse an entity's associations, and act according
+ to the cascade option. For instance, adding an unsaved entity
to a collection with <see
cref="F:Castle.ActiveRecord.CascadeEnum.SaveUpdate"/>
+ cascade will cause it to be saved along with its parent
object, without any need for explicit instructions on our side.
+ </remarks>
+ </member>
+ <member name="F:Castle.ActiveRecord.ManyRelationCascadeEnum.None">
+ <summary>
+ No cascading. This is the default.
+ The cascade should be handled manually.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.ManyRelationCascadeEnum.All">
+ <summary>
+ Cascade save, update and delete.
+ When the object is saved, updated or deleted, the associations
will be checked
+ and the objects found will also be saved, updated or deleted.
+ </summary>
+ </member>
+ <member
name="F:Castle.ActiveRecord.ManyRelationCascadeEnum.SaveUpdate">
+ <summary>
+ Cascade save and update.
+ When the object is saved or updated, the associations will be
checked and any object that requires
+ will be saved or updated (including saving or updating the
associations in many-to-many scenario).
+ </summary>
+ </member>
+ <member
name="F:Castle.ActiveRecord.ManyRelationCascadeEnum.Delete">
+ <summary>
+ Cascade delete.
+ When the object is deleted, all the objects in the association
will be deleted as well.
+ </summary>
+ </member>
+ <member
name="F:Castle.ActiveRecord.ManyRelationCascadeEnum.AllDeleteOrphan">
+ <summary>
+ Cascade save, update and delete, removing orphan children.
+ When an object is saved, updated or deleted, the associations
will be checked and all objects found
+ will be saved, updated or deleted as well.
+ In additional to that, when an object is removed from the
association and not associated with another object (orphaned), it will also
be deleted.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.FieldAttribute">
+ <summary>
+ Maps a standard column of the table.
+ </summary>
+ <example>
+ In the following example, the column is also
+ called 'name', so you don't have to specify.
+ <code>
+ public class Blog : ActiveRecordBase
+ {
+ [Field]
+ string name;
+
+
+ </code>
+ </example>
+ </member>
+ <member name="M:Castle.ActiveRecord.FieldAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.FieldAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.FieldAttribute.#ctor(System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.FieldAttribute"/> class.
+ </summary>
+ <param name="column">The column name.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.FieldAttribute.#ctor(System.String,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.FieldAttribute"/> class.
+ </summary>
+ <param name="column">The column name</param>
+ <param name="type">The column type.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.NotNull">
+ <summary>
+ Gets or sets a value indicating whether the column allows null
values
+ </summary>
+ <value><c>true</c> if [not null]; otherwise,
<c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Length">
+ <summary>
+ Gets or sets the length of this column. char(10), etc
+ </summary>
+ <value>The length.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Column">
+ <summary>
+ Gets or sets the column name
+ </summary>
+ <value>The column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.UniqueKey">
+ <summary>
+ From NHibernate documentation:
+ A unique-key attribute can be used to group columns
+ in a single unit key constraint.
+ </summary>
+ <value>unique key name</value>
+ <remarks>
+ Currently, the
+ specified value of the unique-key attribute is not
+ used to name the constraint, only to group the columns
+ in the mapping file.
+ </remarks>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Index">
+ <summary>
+ From NHibernate documentation:
+ specifies the name of a (multi-column) index
+ </summary>
+ <value>index name</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.SqlType">
+ <summary>
+ From NHibernate documentation:
+ overrides the default column type
+ </summary>
+ <value>column_type</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Check">
+ <summary>
+ From NHibernate documentation:
+ create an SQL check constraint on either column or table
+ </summary>
+ <value>Sql Expression</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Update">
+ <summary>
+ Set to <c>false</c> to ignore this
+ field when updating entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Insert">
+ <summary>
+ Set to <c>false</c> to ignore this
+ field when inserting entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Unique">
+ <summary>
+ Gets or sets a value indicating whether this <see
cref="T:Castle.ActiveRecord.FieldAttribute"/> is unique.
+ </summary>
+ <value><c>true</c> if unique; otherwise, <c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Formula">
+ <summary>
+ Gets or sets the formula used to calculate this field
+ </summary>
+ <value>The formula.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.ColumnType">
+ <summary>
+ Gets or sets the type of the column.
+ </summary>
+ <value>The type of the column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.FieldAttribute.Default">
+ <summary>
+ Gets or sets the default value for a column (used by schema
generation).
+ Please note that you should be careful to set Insert=false or
set the value to the same
+ as the default on the database.
+ </summary>
+ <value>The default value for the column.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.HasAndBelongsToManyAttribute">
+ <summary>
+ Maps a many to many association with an association table.
+ </summary>
+ <example><code>
+ public class Company : ActiveRecordBase
+ {
+ ...
+
+ [HasAndBelongsToMany( typeof(Person), RelationType.Bag,
Table="PeopleCompanies", ColumnRef="person_id", ColumnKey="company_id" )]
+ public IList People
+ {
+ get { return _people; }
+ set { _people = value; }
+ }
+ }
+ </code></example>
+ <remarks>The <see
cref="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.ColumnKey"/> must
specify the key on the
+ association table that points to the primary key of this
class. In
+ the example, 'company_id' points to 'Company'.
+ </remarks>
+ </member>
+ <member name="T:Castle.ActiveRecord.RelationAttribute">
+ <summary>
+ Base class to define common relation information
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.RelationAttribute.RelationType">
+ <summary>
+ Gets or sets the type of the relation.
+ </summary>
+ <value>The type of the relation.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.MapType">
+ <summary>
+ Gets or sets the type of the map.
+ </summary>
+ <value>The type of the map.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Table">
+ <summary>
+ Gets or sets the table for this relation
+ </summary>
+ <value>The table.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Schema">
+ <summary>
+ Gets or sets the schema for this relation (dbo., etc)
+ </summary>
+ <value>The schema name.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Lazy">
+ <summary>
+ Gets or sets a value indicating whether this <see
cref="T:Castle.ActiveRecord.RelationAttribute"/> is lazy.
+ </summary>
+ <value><c>true</c> if lazy; otherwise, <c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Inverse">
+ <summary>
+ Gets or sets a value indicating whether this <see
cref="T:Castle.ActiveRecord.RelationAttribute"/> is inverse.
+ </summary>
+ <value><c>true</c> if inverse; otherwise, <c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Cascade">
+ <summary>
+ Gets or sets the cascade options for this <see
cref="T:Castle.ActiveRecord.RelationAttribute"/>
+ </summary>
+ <value>The cascade.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.OrderBy">
+ <summary>
+ Gets or sets the order by clause for this relation. This is a
SQL order, not HQL.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Where">
+ <summary>
+ Gets or sets the where clause for this relation
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Sort">
+ <summary>
+ Only used with sets. The value can be <c>unsorted</c>,
<c>natural</c> and the name of a class implementing
<c>System.Collections.IComparer</c>
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Index">
+ <summary>
+ Only used with maps or lists
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.IndexType">
+ <summary>
+ Only used with maps
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.Element">
+ <summary>
+ Use for simple types.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.ElementType">
+ <summary>
+ Use for simple types.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.RelationAttribute.NotFoundBehaviour">
+ <summary>
+ Gets or sets the way broken relations are handled.
+ </summary>
+ <value>The behaviour.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.RelationAttribute.BatchSize">
+ <summary>
+ From NHibernate documentation:
+ Specify a "batch size" for batch fetching of collections.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HasAndBelongsToManyAttribute.#ctor(System.Type)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasAndBelongsToManyAttribute"/> class.
+ </summary>
+ <param name="mapType">Type of the map.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HasAndBelongsToManyAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasAndBelongsToManyAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HasAndBelongsToManyAttribute.#ctor(System.Type,Castle.ActiveRecord.RelationType)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasAndBelongsToManyAttribute"/> class.
+ </summary>
+ <param name="mapType">Type of the map.</param>
+ <param name="type">The type.</param>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.ColumnRef">
+ <summary>
+ Gets or sets the column that represent the other side on the
assoication table
+ </summary>
+ <value>The column ref.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.CompositeKeyColumnRefs">
+ <summary>
+ Gets or sets the composite key columns that represent the
other side on the assoication table
+ </summary>
+ <value>The composite key column refs.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.ColumnKey">
+ <summary>
+ Gets or sets the key column name
+ </summary>
+ <value>The column key.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.CompositeKeyColumnKeys">
+ <summary>
+ Gets or sets the composite key columns names.
+ </summary>
+ <value>The composite key column keys.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.Fetch">
+ <summary>
+ Chooses between outer-join fetching
+ or sequential select fetching.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasAndBelongsToManyAttribute.CollectionType">
+ <summary>
+ Provides a custom collection type.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.HasManyAttribute">
+ <summary>
+ Maps a one to many association.
+ </summary>
+ <example><code>
+ public class Blog : ActiveRecordBase
+ {
+ ...
+
+ [HasMany(typeof(Post), RelationType.Bag, ColumnKey="Posts",
Table="Posts")]
+ public IList Posts
+ {
+ get { return _posts; }
+ set { _posts = value; }
+ }
+ </code></example>
+ </member>
+ <member name="F:Castle.ActiveRecord.HasManyAttribute.keyColumn">
+ <summary>
+ The key column
+ Cannot exist if compositeKeyColumns has a value
+ </summary>
+ </member>
+ <member
name="F:Castle.ActiveRecord.HasManyAttribute.compositeKeyColumns">
+ <summary>
+ The composite columns
+ Cannot exist with keyColumn != null
+ </summary>
+ </member>
+ <member
name="F:Castle.ActiveRecord.HasManyAttribute.hasDependentObjects">
+ <summary>
+ Whether the target type is for dependent objects or not
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.HasManyAttribute.fetchMethod">
+ <summary>
+ Whether we do outer join fetching for this collection
+ </summary>
+ </member>
+ <member
name="F:Castle.ActiveRecord.HasManyAttribute.customCollectionType">
+ <summary>
+ Provides a custom collection type.
+ </summary>
+ </member>
+ <member name="M:Castle.ActiveRecord.HasManyAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasManyAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HasManyAttribute.#ctor(System.Type)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasManyAttribute"/> class.
+ </summary>
+ <param name="mapType">Type of the map.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HasManyAttribute.#ctor(System.Type,System.String,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasManyAttribute"/> class.
+ </summary>
+ <param name="mapType">Type of items in this association</param>
+ <param name="keyColumn">The key column.</param>
+ <param name="table">The table.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.HasManyAttribute.ColumnKey">
+ <summary>
+ Gets or sets the key column name.
+ </summary>
+ <value>The column key.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasManyAttribute.CompositeKeyColumnKeys">
+ <summary>
+ Gets or sets the names of the column in composite key
scenarios.
+ </summary>
+ <value>The composite key column keys.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasManyAttribute.DependentObjects">
+ <summary>
+ Whether or not the target type is a dependent object.
+ </summary>
+ <value>true = the target type is a dependent object</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.HasManyAttribute.Fetch">
+ <summary>
+ Chooses between outer-join fetching
+ or sequential select fetching.
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasManyAttribute.CollectionType">
+ <summary>
+ Provides a custom collection type.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.HasManyToAnyAttribute">
+ <summary>
+ This attribute allows polymorphic association between classes
that doesn't have a common root class.
+ In require two columns that would tell it what is the type of
the asssoicated entity, and what is the PK of that entity.
+ <remarks>
+ This is supplied for advanced sceanrios.
+ </remarks>
+ <example>
+ For instnace, let assume that you have two classes (that
implement a common interface, but have no base classs) called:
+ - Back Account
+ - Credit Card
+
+ And you have a set of Payment methods, that can be either. You
would define the mapping so:
+ <code>
+ [HasManyToAny(typeof(IPayment), "pay_id", "payments_table",
typeof(int), "payment_type", "payment_method_id",
+ MetaType = typeof(int), RelationType = RelationType.Set)]
+ </code>
+ typeof(IPayement) - the common interface tha both classes
implement, and the type of all the items in the set.
+ "pay_id" - the column that hold the PK of this entity (the FK
column)
+ "payments_table" - the table that has the assoication
information (in 1:M scenarios - usuaully the same table, in M:N scenarios
the link table).
+ typeof(int) - the type of id column
+ "payment_type" - the column used to find out which class is
represented by this row.
+ "payment_method_id" - the column that holds the PK of the
assoicated class (either CreditCard or BankAccount).
+ MetaType = typeof(int) - the type of the meta column
(payment_type)
+ RelationType = RelationType.Set - specify that we use a set
here
+ </example>
+
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HasManyToAnyAttribute.#ctor(System.Type,System.String,System.String,System.Type,System.String,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HasManyToAnyAttribute"/> class.
+ </summary>
+ <param name="mapType">Type of the map.</param>
+ <param name="keyColum">The key colum.</param>
+ <param name="table">The table.</param>
+ <param name="idType">Type of the id.</param>
+ <param name="typeColumn">The type column.</param>
+ <param name="idColumn">The id column.</param>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasManyToAnyAttribute.TypeColumn">
+ <summary>
+ Gets or sets the type column.
+ </summary>
+ <value>The type column.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasManyToAnyAttribute.IdColumn">
+ <summary>
+ Gets or sets the id column.
+ </summary>
+ <value>The id column.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.HasManyToAnyAttribute.MetaType">
+ <summary>
+ Gets or sets the type of the meta column
+ </summary>
+ <value>The type of the meta.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.HasManyToAnyAttribute.IdType">
+ <summary>
+ Gets or sets the type of the id column
+ </summary>
+ <value>The type of the id.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.HiloAttribute">
+ <summary>
+ Used when a constraint requires a hilo algorithm
+ </summary>
+ <example><code>
+ public class Blog : ActiveRecordBase
+ {
+ ...
+
+ [HasManyAndBelongs/HasMany,
+ CollectionID(CollectionIDAttribute.HiLo),
+ Hilo]
+ public int Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+ </code></example>
+ </member>
+ <member name="M:Castle.ActiveRecord.HiloAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HiloAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HiloAttribute.#ctor(System.String,System.String,System.Int32)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.HiloAttribute"/> class.
+ </summary>
+ <param name="table">The table.</param>
+ <param name="column">The column.</param>
+ <param name="maxlo">The maxlo.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.HiloAttribute.Column">
+ <summary>
+ Gets or sets the column name
+ </summary>
+ <value>The column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.HiloAttribute.Table">
+ <summary>
+ Gets or sets the table name
+ </summary>
+ <value>The table.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.HiloAttribute.MaxLo">
+ <summary>
+ Gets or sets the max low value
+ </summary>
+ <value>The max lo.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.HqlNamedQueryAttribute">
+ <summary>
+ This is used to define a named HQL query.
+ It represents the &lt;query&gt; element.
+ </summary>
+ <example>
+ [assembly: HqlNamedQuery("allAdultUsers", "from User where
user.Age > 21")]
+ </example>
+ </member>
+ <member
name="M:Castle.ActiveRecord.HqlNamedQueryAttribute.#ctor(System.String,System.String)">
+ <summary>
+ Create a new instance
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.HqlNamedQueryAttribute.Name">
+ <summary>
+ The name of the query
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.HqlNamedQueryAttribute.Query">
+ <summary>
+ The query itself
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.ImportAttribute">
+ <summary>
+ This is used to map between a type to a friendly name that can
be used in the queries.
+
+ This attribute is representing an &lt;import/&gt; in the
mapping files
+ </summary>
+ <example>
+ [Import(typeof(SummaryRow), "summary")]
+ </example>
+ </member>
+ <member
name="M:Castle.ActiveRecord.ImportAttribute.#ctor(System.Type,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.ImportAttribute"/> class.
+ </summary>
+ <param name="type">The type.</param>
+ <param name="rename">The rename.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.ImportAttribute.Type">
+ <summary>
+ Gets the type that is being imported
+ </summary>
+ <value>The type.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.ImportAttribute.Rename">
+ <summary>
+ Gets or sets the renamed string that will replace the full
type name in HQL queries for the specified type.
+ </summary>
+ <value>The renamed value.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.JoinedBaseAttribute">
+ <summary>
+ Denotes that a class is the parent class of one or
+ more subclasses using a join
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.JoinedKeyAttribute">
+ <summary>
+ Used for joined subclasses.
+ </summary>
+ </member>
+ <member name="M:Castle.ActiveRecord.JoinedKeyAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.JoinedKeyAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.JoinedKeyAttribute.#ctor(System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.JoinedKeyAttribute"/> class.
+ </summary>
+ <param name="column">The column.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.JoinedKeyAttribute.Column">
+ <summary>
+ Gets or sets the column name
+ </summary>
+ <value>The column.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.KeyPropertyAttribute">
+ <summary>
+ A key property for a composite key
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.PropertyAttribute">
+ <summary>
+ Maps a standard column of the table.
+ </summary>
+ <example>
+ In the following example, the column is also
+ called 'name', so you don't have to specify.
+ <code>
+ public class Blog : ActiveRecordBase
+ {
+ ...
+
+ [Property]
+ public int Name
+ {
+ get { return _name; }
+ set { _name = value; }
+ }
+ </code>
+ To map a column name, use
+ <code>
+ [Property("blog_name")]
+ public int Name
+ {
+ get { return _name; }
+ set { _name = value; }
+ }
+ </code>
+ </example>
+ </member>
+ <member name="M:Castle.ActiveRecord.PropertyAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PropertyAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PropertyAttribute.#ctor(System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PropertyAttribute"/> class.
+ </summary>
+ <param name="column">The column.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PropertyAttribute.#ctor(System.String,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PropertyAttribute"/> class.
+ </summary>
+ <param name="column">The column.</param>
+ <param name="type">The type.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.NotNull">
+ <summary>
+ Gets or sets a value indicating whether this property allow
null.
+ </summary>
+ <value><c>true</c> if allow null; otherwise,
<c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Length">
+ <summary>
+ Gets or sets the length of the property (for strings -
nvarchar(50) )
+ </summary>
+ <value>The length.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Column">
+ <summary>
+ Gets or sets the column name
+ </summary>
+ <value>The column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Update">
+ <summary>
+ Set to <c>false</c> to ignore this property when updating
entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Insert">
+ <summary>
+ Set to <c>false</c> to ignore this property when inserting
entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Unique">
+ <summary>
+ Gets or sets a value indicating whether this <see
cref="T:Castle.ActiveRecord.PropertyAttribute"/> is unique.
+ </summary>
+ <value><c>true</c> if unique; otherwise, <c>false</c>.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Formula">
+ <summary>
+ Gets or sets the formula used to calculate this property
+ </summary>
+ <value>The formula.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.ColumnType">
+ <summary>
+ Gets or sets the type of the column.
+ </summary>
+ <value>The type of the column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.UniqueKey">
+ <summary>
+ From NHibernate documentation:
+ A unique-key attribute can be used to group columns
+ in a single unit key constraint.
+ </summary>
+ <value>unique key name</value>
+ <remarks>
+ Currently, the
+ specified value of the unique-key attribute is not
+ used to name the constraint, only to group the columns
+ in the mapping file.
+ </remarks>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Index">
+ <summary>
+ From NHibernate documentation:
+ specifies the name of a (multi-column) index
+ </summary>
+ <value>index name</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.SqlType">
+ <summary>
+ From NHibernate documentation:
+ overrides the default column type
+ </summary>
+ <value>column_type</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Check">
+ <summary>
+ From NHibernate documentation:
+ create an SQL check constraint on either column or table
+ </summary>
+ <value>Sql Expression</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.Default">
+ <summary>
+ Gets or sets the default value for a column (used by schema
generation).
+ Please note that you should be careful to set Insert=false or
set the value to the same
+ as the default on the database.
+ </summary>
+ <value>The default value for the column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PropertyAttribute.IsOverride">
+ <summary>
+ Set to <c>true</c> if this property overrides a property in a
base class
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.KeyPropertyAttribute.UnsavedValue">
+ <summary>
+ Gets or sets the unsaved value.
+ </summary>
+ <value>The unsaved value.</value>
+ </member>
+ <member name="T:Castle.ActiveRecord.NestedAttribute">
+ <summary>
+ Maps properties of a child object to columns of the table
+ of a parent class.
+ </summary>
+ <example>
+ The following code illustrates the use of a
+ nested <c>PostalAddress</c> class
+ <code>
+ [ActiveRecord("Companies")]
+ public class Company : ActiveRecordBase
+ {
+ private int id;
+ private PostalAddress _address;
+
+ public Company()
+ {
+ }
+
+ public Company(string name)
+ {
+ this.name = name;
+ }
+
+ [PrimaryKey]
+ public int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ [Nested]
+ public PostalAddress Address
+ {
+ get { return _address; }
+ set { _address = value; }
+ }
+ }
+
+ public class PostalAddress
+ {
+ private String _address;
+ private String _city;
+ private String _state;
+ private String _zipcode;
+
+ [Property]
+ public String Address
+ {
+ get { return _address; }
+ set { _address = value; }
+ }
+
+ [Property]
+ public String City
+ {
+ get { return _city; }
+ set { _city = value;}
+ }
+
+ [Property]
+ public String State
+ {
+ get { return _state; }
+ set { _state = value; }
+ }
+
+ [Property]
+ public String ZipCode
+ {
+ get { return _zipcode; }
+ set { _zipcode = value; }
+ }
+ }
+ </code>
+ </example>
+ </member>
+ <member name="M:Castle.ActiveRecord.NestedAttribute.#ctor">
+ <summary>
+ Informs ActiveRecord that the marked property contains nested
elements, contained
+ in a separate, reusable class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.NestedAttribute.#ctor(System.String)">
+ <summary>
+ Informs ActiveRecord that the marked property contains nested
elements, contained
+ in a separate, reusable class.
+ </summary>
+ <param name="columnPrefix">A prefix to insert before each
column in the nested component</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.NestedAttribute.MapType">
+ <summary>
+ Allows one to reference a different type
+ than the property type
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.NestedAttribute.Update">
+ <summary>
+ Set to <c>false</c> to ignore this nested component when
updating entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.NestedAttribute.Insert">
+ <summary>
+ Set to <c>false</c> to ignore this nested component when
inserting entities of this ActiveRecord class.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.NestedAttribute.ColumnPrefix">
+ <summary>
+ A prefix to insert before each column in the nested component.
+ </summary>
+ </member>
+ <member
name="T:Castle.ActiveRecord.NestedParentReferenceAttribute">
+ <summary>
+ Maps a property of a child object to its parent object.
+ </summary>
+ <example>
+ The following code illustrates the use of a
+ parent <c>Company</c> class
+ <code>
+ public class PostalAddress
+ {
+ private Company _company;
+ private String _address;
+ private String _city;
+ private String _state;
+ private String _zipcode;
+
+ [Parent]
+ public Company Parent
+ {
+ get { return _company; }
+ set { _company = value; }
+ }
+
+ [Property]
+ public String Address
+ {
+ get { return _address; }
+ set { _address = value; }
+ }
+
+ [Property]
+ public String City
+ {
+ get { return _city; }
+ set { _city = value;}
+ }
+
+ [Property]
+ public String State
+ {
+ get { return _state; }
+ set { _state = value; }
+ }
+
+ [Property]
+ public String ZipCode
+ {
+ get { return _zipcode; }
+ set { _zipcode = value; }
+ }
+ }
+
+ [ActiveRecord("Companies")]
+ public class Company : ActiveRecordBase
+ {
+ private int id;
+ private PostalAddress _address;
+
+ public Company()
+ {
+ }
+
+ public Company(string name)
+ {
+ this.name = name;
+ }
+
+ [PrimaryKey]
+ public int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ [Nested]
+ public PostalAddress Address
+ {
+ get { return _address; }
+ set { _address = value; }
+ }
+ }
+ </code>
+ </example>
+ </member>
+ <member
name="M:Castle.ActiveRecord.NestedParentReferenceAttribute.#ctor">
+ <summary>
+ Informs ActiveRecord that the marked property is the parent of
a nested element
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.OneToOneAttribute">
+ <summary>
+ Associates a foreign table where the current class
+ and the target class share their primary key.
+ </summary>
+ <example>
+ The following code exemplifies two classes that maps
+ to two tables sharing the primary key:
+ <code>
+ [ActiveRecord("Employee")]
+ public class Employee : ActiveRecordBase
+ {
+ private int id;
+ private Award award;
+
+ [PrimaryKey(PrimaryKeyType.Native, "EmployeeID")]
+ public int ID
+ {
+ get { return this.id; }
+ set { this.id = value; }
+ }
+
+ [OneToOne]
+ public Award Award
+ {
+ get { return this.award; }
+ set { this.award = value; }
+ }
+ }
+
+ [ActiveRecord("Award")]
+ public class Award : ActiveRecordBase
+ {
+ private Employee employee;
+ private int id;
+
+ public Award()
+ {
+ }
+
+ public Award(Employee employee)
+ {
+ this.employee = employee;
+ }
+
+ [OneToOne]
+ public Employee Employee
+ {
+ get { return this.employee; }
+ set { this.employee = value; }
+ }
+
+ [PrimaryKey(PrimaryKeyType.Foreign, "EmployeeID")]
+ public int ID
+ {
+ get { return this.id; }
+ set { this.id = value; }
+ }
+
+ public static Award[] FindAll()
+ {
+ return ((Award[])
(ActiveRecordBase.FindAll(typeof(Award))));
+ }
+
+ public static void DeleteAll()
+ {
+ ActiveRecordBase.DeleteAll( typeof(Award) );
+ }
+ }
+ Employee emp = new Employee();
+ emp.Name = "john doe";
+ emp.Save();
+
+ Award award = new Award(emp);
+ award.Description = "Invisible employee";
+ award.Save();
+ </code>
+ </example>
+ <remarks>
+ Usually classes that uses the primary key
+ generated elsewhere (foreign) uses the PrimaryKey attribute
with the
+ generator type <c>PrimaryKeyType.Foreign</c>
+ </remarks>
+ </member>
+ <member name="P:Castle.ActiveRecord.OneToOneAttribute.MapType">
+ <summary>
+ Allows one to reference a different type
+ than the property type
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.OneToOneAttribute.Cascade">
+ <summary>
+ From NHibernate docs: specifies which operations should be
+ cascaded from the parent object to the associated object.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.OneToOneAttribute.Fetch">
+ <summary>
+ From NHibernate docs: Chooses between outer-join fetching
+ or sequential select fetching.
+ </summary>
+ <remarks>
+ Defaults to <see
cref="F:Castle.ActiveRecord.FetchEnum.Select"/>
+ </remarks>
+ </member>
+ <member name="P:Castle.ActiveRecord.OneToOneAttribute.PropertyRef">
+ <summary>
+ From NHibernate docs: The name of a property of the
+ associated class that is joined to the primary key
+ of this class. If not specified, the primary key of
+ the associated class is used.
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.OneToOneAttribute.Constrained">
+ <summary>
+ From NHibernate docs: specifies that a foreign key
+ constraint on the primary key of the mapped table
+ references the table of the associated class.
+ This option affects the order in which Save() and
+ Delete() are cascaded (and is also used by the
+ schema export tool).
+ </summary>
+ </member>
+ <member name="P:Castle.ActiveRecord.OneToOneAttribute.ForeignKey">
+ <summary>
+ Gets or sets the name of the foreign key constraint generated
for
+ an association. NHibernate will only use the ForeignKey name
one
+ the inherited class and Constrained = true.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.PrimaryKeyType">
+ <summary>
+ Define the possible strategies to set the Primary Key values
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Identity">
+ <summary>
+ Use Identity column (auto number)
+ Note: This force an immediate call to the DB when Create() is
called
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Sequence">
+ <summary>
+ Use a sequence
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.HiLo">
+ <summary>
+ Use the HiLo algorithm to get the next value
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.SeqHiLo">
+ <summary>
+ Use a sequence and a HiLo algorithm - better performance on
Oracle
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.UuidHex">
+ <summary>
+ Use the hex representation of a unique identifier
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.UuidString">
+ <summary>
+ Use the string representation of a unique identifier
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Guid">
+ <summary>
+ Generate a Guid for the primary key
+ Note: You should prefer using GuidComb over this value.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.GuidComb">
+ <summary>
+ Generate a Guid in sequence, so it will have better insert
performance in the DB.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Native">
+ <summary>
+ Use an identity or sequence if supported by the database,
otherwise, use the HiLo algorithm
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Assigned">
+ <summary>
+ The primary key value is always assigned.
+ Note: using this you will lose the ability to call Save(), and
will need to call Create() or Update()
+ explicitly.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Foreign">
+ <summary>
+ This is a foreign key to another table
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Counter">
+ <summary>
+ Returns a <c>Int64</c> constructed from the system
+ time and a counter value.
+ </summary>
+ <remarks>
+ Not safe for use in a clustser
+ </remarks>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Increment">
+ <summary>
+ Returns a <c>Int64</c>, constructed by counting from
+ the maximum primary key value at startup.
+ </summary>
+ <remarks>
+ Not safe for use in a cluster
+ </remarks>
+ </member>
+ <member name="F:Castle.ActiveRecord.PrimaryKeyType.Custom">
+ <summary>
+ A custom generator will be provided. See <see
cref="P:Castle.ActiveRecord.PrimaryKeyAttribute.CustomGenerator"/>
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.PrimaryKeyAttribute">
+ <summary>
+ Indicates the property which is the primary key.
+ </summary>
+ <example><code>
+ public class Blog : ActiveRecordBase
+ {
+ ...
+
+ [PrimaryKey(PrimaryKeyType.Native)]
+ public int Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+ </code></example>
+ </member>
+ <member name="M:Castle.ActiveRecord.PrimaryKeyAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PrimaryKeyAttribute"/> class.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PrimaryKeyAttribute.#ctor(System.Type)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PrimaryKeyAttribute"/> class.
+ </summary>
+ <param name="customGenerator">A custom identifier
+ generator (that implements <see
cref="T:NHibernate.Id.IIdentifierGenerator"/>).</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PrimaryKeyAttribute.#ctor(Castle.ActiveRecord.PrimaryKeyType)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PrimaryKeyAttribute"/> class.
+ </summary>
+ <param name="generator">The generator.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PrimaryKeyAttribute.#ctor(Castle.ActiveRecord.PrimaryKeyType,System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PrimaryKeyAttribute"/> class.
+ </summary>
+ <param name="generator">The generator.</param>
+ <param name="column">The PK column.</param>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PrimaryKeyAttribute.#ctor(System.String)">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.PrimaryKeyAttribute"/> class.
+ </summary>
+ <param name="column">The PK column.</param>
+ </member>
+ <member name="P:Castle.ActiveRecord.PrimaryKeyAttribute.Generator">
+ <summary>
+ Gets or sets the generator.
+ </summary>
+ <value>The generator.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PrimaryKeyAttribute.Column">
+ <summary>
+ Gets or sets the column name
+ </summary>
+ <value>The column.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.PrimaryKeyAttribute.UnsavedValue">
+ <summary>
+ Gets or sets the unsaved value.
+ </summary>
+ <value>The unsaved value.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.PrimaryKeyAttribute.SequenceName">
+ <summary>
+ Gets or sets the name of the sequence.
+ </summary>
+ <value>The name of the sequence.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.PrimaryKeyAttribute.ColumnType">
+ <summary>
+ Gets or sets the type of the column.
+ </summary>
+ <value>The type of the column.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PrimaryKeyAttribute.Length">
+ <summary>
+ Gets or sets the length of values in the column
+ </summary>
+ <value>The length.</value>
+ </member>
+ <member
name="P:Castle.ActiveRecord.PrimaryKeyAttribute.CustomGenerator">
+ <summary>
+ Gets or sets the custom generator.
+ The generator must implement <see
cref="T:NHibernate.Id.IIdentifierGenerator"/>
+ </summary>
+ <value>The custom generator type.</value>
+ </member>
+ <member name="P:Castle.ActiveRecord.PrimaryKeyAttribute.Params">
+ <summary>
+ Comma separated value of parameters to the generator
+ </summary>
+ </member>
+ <member
name="P:Castle.ActiveRecord.PrimaryKeyAttribute.IsOverride">
+ <summary>
+ Set to <c>true</c> if this primary key overrides a primary key
in a base class
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.PropertyAccess">
+ <summary>
+ Define the various access strategies NHibernate will use to
set/get the value
+ for this property.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.PropertyAccess.Property">
+ <summary>
+ Use the property get/set methods to get and set the value of
this property
+ </summary>
+ <example>
+ <code>
+ [Property(Access=PropertyAccess.Property)]
+ public string UserName { get {... } set { ... } }
+ </code>
+ </example>
+ </member>
+ <member name="F:Castle.ActiveRecord.PropertyAccess.Field">
+ <summary>
+ Use the field to get/set the value. (Only valid when specify
on a field).
+ </summary>
+ <example>
+ <code>
+ [Property(Access=PropertyAccess.Field)]
+ public string UserName; // notice this is a field, not
property.
+ </code>
+ </example>
+ </member>
+ <member name="F:Castle.ActiveRecord.PropertyAccess.FieldCamelcase">
+ <summary>
+ Use the field that is the backing store for this property to
get/set the value of this property.
+ The field is using the same name as the property, in camel
case.
+ </summary>
+ <example>
+ <code>
+ string userName;//this will be use to get or set the value
+
+ [Property(Access=PropertyAccess.FieldCamelCase)]
+ public string UserName { get {... } set { ... } }
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.FieldCamelcaseUnderscore">
+ <summary>
+ Use the field that is the backing store for this property to
get/set the value of this property.
+ The field is using the same name as the property, in camel
case and with an initial underscore
+ </summary>
+ <example>
+ <code>
+ string _userName;//this will be use to get or set the value
+
+ [Property(Access=PropertyAccess.FieldCamelcaseUnderscore)]
+ public string UserName { get {... } set { ... } }
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.FieldPascalcaseMUnderscore">
+ <summary>
+ Use the field that is the backing store for this property to
get/set the value of this property.
+ The field is using the same name as the property, in pascal
case and with an initial m and then underscore.
+ m_Name for the property Name.
+ </summary>
+ <example>
+ <code>
+ string m_UserName;//this will be use to get or set the value
+
+ [Property(Access=PropertyAccess.FieldPascalcaseMUnderscore)]
+ public string UserName { get {... } set { ... } }
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.FieldLowercaseUnderscore">
+ <summary>
+ Use the field that is the backing store for this property to
get/set the value of this property.
+ The field is using the same name as the property, in all lower
case and with inital underscore
+ </summary>
+ <example>
+ <code>
+ string _username;//this will be use to get or set the value
+
+ [Property(Access=PropertyAccess.FieldLowercaseUnderscore)]
+ public string UserName { get {... } set { ... } }
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.NosetterCamelcase">
+ <summary>
+ Use the property' getter to get the value, and use the field
with the same name and in camel case
+ in order to set it.
+ </summary>
+ <example>
+ <code>
+ string _userName;//this will be use to set the value
+
+ [Property(Access=PropertyAccess.NosetterCamelcase)]
+ public string UserName { get {... } set { ... } } // this will
be used just to get the value
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.NosetterCamelcaseUnderscore">
+ <summary>
+ Use the property' getter to get the value, and use the field
with the same name and in camel case
+ with initial "_" in order to set it.
+ </summary>
+ <example>
+ <code>
+ string _userName;//this will be use to set the value
+
+ [Property(Access=PropertyAccess.NosetterCamelcaseUnderscore)]
+ public string UserName { get {... } set { ... } } // this will
be used just to get the value
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.NosetterPascalcaseUnderscore">
+ <summary>
+ Use the property' getter to get the value, and use the field
with the same name and in pascal case
+ with initial "_" in order to set it.
+ </summary>
+ <example>
+ <code>
+ string _UserName;//this will be use to set the value
+
+ [Property(Access=PropertyAccess.NosetterPascalcaseUnderscore)]
+ public string UserName { get {... } set { ... } } // this will
be used just to get the value
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.NosetterPascalcaseMUndersc">
+ <summary>
+ Use the property' getter to get the value, and use the field
with the same name and in pascal case
+ with initial "m_" in order to set it.
+ </summary>
+ <example>
+ <code>
+ string m_UserName;//this will be use to set the value
+
+ [Property(Access=PropertyAccess.NosetterPascalcaseMUndersc)]
+ public string UserName { get {... } set { ... } } // this will
be used just to get the value
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.NosetterLowercaseUnderscore">
+ <summary>
+ Use the property' getter to get the value, and use the field
with the same name and in lower case
+ with initial "_" in order to set it.
+ </summary>
+ <example>
+ <code>
+ string _username;//this will be use to set the value
+
+ [Property(Access=PropertyAccess.NosetterLowercaseUnderscore)]
+ public string UserName { get {... } set { ... } } // this will
be used just to get the value
+ </code>
+ </example>
+ </member>
+ <member
name="F:Castle.ActiveRecord.PropertyAccess.NosetterLowercase">
+ <summary>
+ Use the property' getter to get the value, and use the field
with the same name and in lower case
+ in order to set it.
+ </summary>
+ <example>
+ <code>
+ string username;//this will be use to set the value
+
+ [Property(Access=PropertyAccess.NosetterLowercase)]
+ public string UserName { get {... } set { ... } } // this will
be used just to get the value
+ </code>
+ </example>
+ </member>
+ <member name="T:Castle.ActiveRecord.PropertyAccessHelper">
+ <summary>
+ Utility class to help convert between <see
cref="T:Castle.ActiveRecord.PropertyAccess"/> values and
+ NHiberante's access strategies.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.PropertyAccessHelper.ToString(Castle.ActiveRecord.PropertyAccess)">
+ <summary>
+ Convert <param name="access"/> to its NHibernate string
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.RawXmlMappingAttribute">
+ <summary>
+ Abstract base class for custom attributes that can generate
XML and return it directly.
+ This allows to customize the generate the XML passed to
NHibernate in a flexible way.
+ </summary>
+ </member>
+ <member
name="M:Castle.ActiveRecord.RawXmlMappingAttribute.GetMappings">
+ <summary>
+ Get the mapping xml to add to NHibernate's configuration.
+ Note that we allow to return more than a single mapping, each
string is
+ treated as a seperated document.
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.RelationType">
+ <summary>
+ Define the relation type for a relation.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.RelationType.Guess">
+ <summary>
+ Let Active Record guess what is the type of the relation.
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.RelationType.Bag">
+ <summary>
+ An bag of items (allow duplicates)
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.RelationType.Set">
+ <summary>
+ A set of unique items
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.RelationType.IdBag">
+ <summary>
+ A bag of items with id
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.RelationType.Map">
+ <summary>
+ Map of key/value pairs (IDictionary)
+ </summary>
+ </member>
+ <member name="F:Castle.ActiveRecord.RelationType.List">
+ <summary>
+ A list of items - position in the list has meaning
+ </summary>
+ </member>
+ <member name="T:Castle.ActiveRecord.TimestampAttribute">
+ <summary>
+ Specify that this property is used for timestamping this entity
+ </summary>
+ </member>
+ <member name="M:Castle.ActiveRecord.TimestampAttribute.#ctor">
+ <summary>
+ Initializes a new instance of the <see
cref="T:Castle.ActiveRecord.Time

==============================================================================
Diff truncated at 200k characters
Reply all
Reply to author
Forward
0 new messages