Skip to content

Instantly share code, notes, and snippets.

@NickBranstein
Last active August 29, 2015 14:09
Show Gist options
  • Select an option

  • Save NickBranstein/d2083e2f4f836ffee407 to your computer and use it in GitHub Desktop.

Select an option

Save NickBranstein/d2083e2f4f836ffee407 to your computer and use it in GitHub Desktop.
NHibernate Map by Code Examples - Part 2
public abstract class BaseSupplyDiscriminated
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual bool Required { get; set; }
public virtual int Quantity { get; set; }
}
public abstract class BaseSupplyJoined
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual bool Required { get; set; }
public virtual int Quantity { get; set; }
}
public abstract class BaseSupplyUnioned
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual bool Required { get; set; }
public virtual int Quantity { get; set; }
}
public class ArtSupplyDiscriminated : BaseSupplyDiscriminated
{
public virtual string Color { get; set; }
}
public class ArtSupplyJoined : BaseSupplyJoined
{
public virtual string Color { get; set; }
}
public class ArtSupplyUnioned : BaseSupplyUnioned
{
public virtual string Color { get; set; }
}
public class CleaningSupplyDiscriminated : BaseSupplyDiscriminated
{
public virtual string Size { get; set; }
}
public class CleaningSupplyJoined : BaseSupplyJoined
{
public virtual string Size { get; set; }
}
public class CleaningSupplyUnioned : BaseSupplyUnioned
{
public virtual string Size { get; set; }
}
public class BaseSupplyDiscriminatedMap : ClassMapping<BaseSupplyDiscriminated>
{
public BaseSupplyDiscriminatedMap()
{
Id(p => p.Id, m => m.Generator(Generators.Guid));
Discriminator(dm =>
{
dm.NotNullable(true);
dm.Column("Discriminator");
});
Property(p => p.Name);
Property(p => p.Quantity);
Property(p => p.Required);
}
}
public class BaseSupplyJoinedMap : ClassMapping<BaseSupplyJoined>
{
public BaseSupplyJoinedMap()
{
Id(p => p.Id, m => m.Generator(Generators.Guid));
Property(p => p.Name);
Property(p => p.Quantity);
Property(p => p.Required);
}
}
public class BaseSupplyUnionedMap : ClassMapping<BaseSupplyUnioned>
{
public BaseSupplyUnionedMap()
{
Id(p => p.Id, m => m.Generator(Generators.Guid));
Property(p => p.Name);
Property(p => p.Quantity);
Property(p => p.Required);
}
}
public class ArtSupplyDiscriminatedMap : SubclassMapping<ArtSupplyDiscriminated>
{
public ArtSupplyDiscriminatedMap()
{
Property(p => p.Color);
}
}
public class ArtSupplyJoinedMap : JoinedSubclassMapping<ArtSupplyJoined>
{
public ArtSupplyJoinedMap()
{
Key(km => km.Column("Id"));
Property(p => p.Color);
}
}
public class ArtSupplyUnionedMap : UnionSubclassMapping<ArtSupplyUnioned>
{
public ArtSupplyUnionedMap()
{
Property(p => p.Color);
}
}
public class CleaningSupplyDiscriminatedMap : SubclassMapping<CleaningSupplyDiscriminated>
{
public CleaningSupplyDiscriminatedMap()
{
Property(p => p.Size);
}
}
public class CleaningSupplyJoinedMap : JoinedSubclassMapping<CleaningSupplyJoined>
{
public CleaningSupplyJoinedMap()
{
Key(km => km.Column("Id"));
Property(p => p.Size);
}
}
public class CleaningSupplyUnionedMap : UnionSubclassMapping<CleaningSupplyUnioned>
{
public CleaningSupplyUnionedMap()
{
Property(p => p.Size);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment