Why not create an interim abstract class
public abstract class ImageArticle : ArticleBase
{
public virtual IList<Image> Images { get; protected set; }
}
So ComputerArticle : ImageArticle
, etc and Image
becomes:
public class Image : Entity<Guid>
{
public virtual ImageArticle Article { get; set; }
}
And map: (I normally use Fluent NHibernate so apologies if this is the incorrect syntax)
public class ImageArticleMapping : SubclassMapping<ImageArticle>
{
public ImageArticleMapping()
{
this.Bag(x => x.Images)
}
}