Model:
[Serializable]
[HierarchyRoot]
public class MyEntity : Entity
{
[Field, Key]
public Guid Id { get; private set; }
[Field(Length = 100)]
public string Text { get; set; }
[Association(PairTo = "Owner")]
[Field]
public EntitySet<TablePartBaseImpl<MyEntity>> SomeSet { get; set; }
public MyEntity(Session session)
: base(session)
{
}
}
[Serializable]
[HierarchyRoot]
public class MyEntitySecond : Entity
{
[Field, Key]
public Guid Id { get; private set; }
[Field(Length = 50)]
public string SomeField { get; set; }
[Association(PairTo = "Owner")]
[Field]
public EntitySet<TablePartBaseImpl<MyEntitySecond>> SomeSet { get; set; }
public MyEntitySecond(Session session)
: base(session)
{
}
}
[Serializable]
public abstract class TablePartBase<TEntity> : Entity where TEntity : Entity
{
protected TablePartBase(Session session, TEntity owner) : base(session)
{
Owher = owner;
}
[Field, Key]
public Guid Id { get; private set; }
[Field]
public TEntity Owher { get; set; }
}
[HierarchyRoot]
[Serializable]
public class TablePartBaseImpl<TEntity> : TablePartBase<TEntity>
where TEntity : Entity
{
public TablePartBaseImpl(Session session, TEntity owner) : base(session, owner)
{
}
[Field]
public string SomeStringField { get; set; }
}
In recreate mode have exception:
Xtensive.Orm.DomainBuilderException occurred
Message=Type 'ConsoleApplication1.TablePartBaseImpl<ConsoleApplication1.MyEntity>' is not registered in the model.
Source=Xtensive.Orm
StackTrace:
at Xtensive.Orm.Building.ModelInspector.GetTypeDef(Type type) in d:\Projects\Xtensive\DataObjects.Net\partnership\Xtensive.Orm\Xtensive.Orm\Orm\Building\ModelInspector.cs:line 352
InnerException:
Xtensive.Orm.dll!Xtensive.Orm.Building.ModelInspector.GetTypeDef(System.Type type) Line 354 C#
Xtensive.Orm.dll!Xtensive.Orm.Building.ModelInspector.InspectField(Xtensive.Orm.Building.Definitions.TypeDef typeDef, Xtensive.Orm.Building.Definitions.FieldDef fieldDef, bool isKeyField) Line 321 + 0x8 bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Building.ModelInspector.Inspect(Xtensive.Orm.Building.Definitions.TypeDef typeDef) Line 284 + 0xd bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Building.ModelInspector.InspectTypes() Line 57 + 0x8 bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Building.ModelInspector.Run() Line 27 + 0x5 bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Building.Builders.ModelBuilder.Run() Line 43 + 0x5 bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Building.Builders.DomainBuilder.BuildModel() Line 214 + 0x5 bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Building.Builders.DomainBuilder.BuildDomain(Xtensive.Orm.Configuration.DomainConfiguration configuration, Xtensive.Orm.Building.Builders.DomainBuilderConfiguration builderConfiguration) Line 63 + 0x5 bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Upgrade.UpgradingDomainBuilder.BuildStageDomain(Xtensive.Orm.Upgrade.UpgradeStage stage) Line 82 + 0x3a bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Upgrade.UpgradingDomainBuilder.Build(Xtensive.Orm.Configuration.DomainConfiguration configuration) Line 62 + 0xa bytes C#
Xtensive.Orm.dll!Xtensive.Orm.Domain.Build(Xtensive.Orm.Configuration.DomainConfiguration configuration) Line 281 + 0x8 bytes C#
ConsoleApplication1.exe!ConsoleApplication1.Program.Main(string[] args) Line 52 + 0x8 bytes C#
asked
Jan 31 '12 at 04:43
Multysh
15●6●6●9