Esempio n. 1
0
        private static void LoadInheritedClassdefStructure(out IClassDef parentClassDef, out IClassDef childClassDef, 
            out IClassDef grandchildClassDef, ORMapping orMappingType)
        {
            string inheritanceType = orMappingType.ToString();
            string discriminator = "";
            if (orMappingType == ORMapping.SingleTableInheritance)
            {
                discriminator = @"discriminator=""blah""";
            }
            XmlClassLoader loader = new XmlClassLoader(new DtdLoader(), new DefClassFactory());
            parentClassDef = loader.LoadClass(
                @"<class name=""Parent"" assembly=""Habanero.Test"">
					<property  name=""MyBoID"" type=""Guid"" />
                    <property name=""FakeUCProp"" type=""string"" />
                    <key name=""UC_Fake"">
                      <prop name=""FakeUCProp"" />
                    </key>
                    <primaryKey>
						<prop name=""MyBoID"" />
					</primaryKey>

				</class>
			");
            childClassDef = loader.LoadClass(String.Format(
                @"<class name=""Child"" assembly=""Habanero.Test"">
					<superClass class=""Parent"" assembly=""Habanero.Test"" orMapping=""{0}"" {1} />
                    <property  name=""Prop1"" />
                    <property name=""FakeUCPropChild"" type=""string"" />
                    <key name=""UC_FakeChild"">
                      <prop name=""FakeUCPropChild"" />
                    </key>
				</class>
			", inheritanceType, discriminator));
            grandchildClassDef = loader.LoadClass(String.Format(
                @"<class name=""Grandchild"" assembly=""Habanero.Test"">
					<superClass class=""Child"" assembly=""Habanero.Test"" orMapping=""{0}"" {1} />
                    <property name=""Prop2"" />
                    <property name=""FakeUCPropGrandchild"" type=""string"" />
                    <key name=""UC_FakeGrandchild"">
                      <prop name=""FakeUCPropGrandchild"" />
                    </key>
				</class>
			", inheritanceType, discriminator));
            ClassDef.ClassDefs.Add(parentClassDef);
            ClassDef.ClassDefs.Add(childClassDef);
            ClassDef.ClassDefs.Add(grandchildClassDef);
        }