No I don't. Just to be clear (mditem was in my previous example history):
CREATE TABLE `administrator` (
`Id` int(11) unsigned NOT NULL,
`Password` char(150) NOT NULL,
`PasswordIsExpired` tinyint(1) NOT NULL DEFAULT '0',
`LastLoggedIn` datetime DEFAULT NULL,
`LoggedInCount` int(11) NOT NULL DEFAULT '0',
`IsActive` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`Id`),
UNIQUE KEY `Id` (`Id`),
CONSTRAINT `administrator_fk1` FOREIGN KEY (`Id`) REFERENCES `person` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `person` (
`Id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`TypeId` int(11) unsigned NOT NULL COMMENT '1=Administrator; 2=User; 3=Contactperson',
`FirstName` char(100) NOT NULL,
`MiddleName` char(20) DEFAULT NULL,
`LastName` char(100) NOT NULL,
`Gender` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'True: male; False: female',
`Description` char(100) DEFAULT NULL,
`Birthday` date DEFAULT NULL,
`Telephone` char(15) DEFAULT NULL,
`Mobile` char(15) DEFAULT NULL,
`MailAddress` char(50) DEFAULT NULL,
`MDItemId` int(11) unsigned NOT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `Id` (`Id`),
UNIQUE KEY `MDItemId` (`MDItemId`),
CONSTRAINT `person_fk1` FOREIGN KEY (`MDItemId`) REFERENCES `mditem` (`Id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=316 DEFAULT CHARSET=latin1
CREATE TABLE `mditem` (
`Id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`CreatedOn` datetime NOT NULL,
`CreatedBy` int(10) unsigned NOT NULL,
`LastModifiedOn` datetime DEFAULT NULL,
`LastModifiedBy` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `Id` (`Id`),
KEY `CreatedBy` (`CreatedBy`),
KEY `LastModifiedBy` (`LastModifiedBy`),
CONSTRAINT `entity_fk1` FOREIGN KEY (`CreatedBy`) REFERENCES `person` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `entity_fk2` FOREIGN KEY (`LastModifiedBy`) REFERENCES `person` (`Id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=316 DEFAULT CHARSET=latin1
Full code:
IPrefetchPath prefetchPath = new PrefetchPath((int)EntityType.AdministratorEntity);
prefetchPath.Add(AdministratorEntity.PrefetchPathPerson).SubPath.Add(PersonEntity.PrefetchPathMditem);
AdministratorCollection ac = new AdministratorCollection();
ac.GetMulti(null, prefetchPath);
List<Administrator> administrators = new List<Administrator>();
foreach (AdministratorEntity e in ac)
{
administrators.Add(new Administrator(e));
}
//contructors
internal Administrator(AdministratorEntity entity): base(entity.Person)
{
_entity = entity;
}
internal Person(PersonEntity entity): base(entity.Mditem)
{
_entity = entity;
}
internal MDItem(MditemEntity entity)
{
_entity = entity;
}