I was looking to update a project from AR v1.0.3.0 and get use the new
Linq features, but I'm stuck on this error both using
ActiveRecordLinq.AsQueryable<ArTest>() and inheriting from
ActiveRecordLinqBase. If I comment out the HasMany relationship I can
save with the Linq Version.

Here is the code...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Castle.ActiveRecord;
using Castle.ActiveRecord.Framework;
using Castle.ActiveRecord.Framework.Config;
using System.Reflection;

namespace ActiveRecordTestConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Castle.ActiveRecord.Framework.IConfigurationSource config;
            Dictionary<string, string> properties = new
Dictionary<string, string>();
            properties.Add("connection.driver_class",
"NHibernate.Driver.SqlClientDriver");
            properties.Add("dialect",
"NHibernate.Dialect.MsSql2005Dialect");
            properties.Add("connection.provider",
"NHibernate.Connection.DriverConnectionProvider");
            properties.Add("proxyfactory.factory_class",
"NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle");
            properties.Add("connection.connection_string",
"constring");
            properties.Add("connection.isolation",
System.Data.IsolationLevel.ReadUncommitted.ToString());
            properties.Add("command_timeout", "320");
            InPlaceConfigurationSource inPlaceConfig = new
InPlaceConfigurationSource();
            inPlaceConfig.Add(typeof(ActiveRecordBase), properties);
            config = inPlaceConfig;
            // load the assemblies to scan for ActiveRecord classes.
            Assembly asm =
Assembly.Load("ActiveRecordTestConsoleApp");
            ActiveRecordStarter.Initialize(asm, config);

            var artest1 = ArTest.Find(49);
            artest1.Save(); // works fine
            var artest2 =
ActiveRecordLinq.AsQueryable<ArTest>().First(ar => ar.Id == 49);
            artest2.Save(); // exception: Illegal attempt to associate
a collection with two open sessions

        }
    }


    [ActiveRecord(Table = "temp.dbo.artest")]
    public class ArTest : ActiveRecordBase<ArTest>
    {
        [HasMany(typeof(ArTestChild), Lazy = false, Table =
"temp.dbo.artestchild", Inverse = true, ColumnKey = "artestid",
RelationType = RelationType.Bag, Cascade =
ManyRelationCascadeEnum.AllDeleteOrphan)]
        public IList<ArTestChild> ArTestChildren { get; set; }

        [PrimaryKey]
        public int Id { get; set; }

        [Property]
        public string Value { get; set; }

    }

    [ActiveRecord(Table = "temp.dbo.artestchild")]
    public class ArTestChild : ActiveRecordBase<ArTestChild>
    {
        [BelongsTo(Column = "artestid")]
        public ArTest ArTestParent { get; set; }

        [PrimaryKey]
        public int Id { get; set; }

        [Property]
        public string ChildValue { get; set; }
    }
}

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to