Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <pre><code>public class CommonFields { public int Status { get; set; } public DateTime CreatedOn { get; set; } public int? CreatedById { get; set; } public virtual User CreatedBy { get; set; } public DateTime ModifiedOn { get; set; } public virtual User ModifiedBy { get; set; } public int? ModifiedById { get; set; } } </code></pre> <p>and you have to define relations for all derived entities in your DbContext </p> <pre><code>protected override void OnModelCreating(DbModelBuilder mb) { mb.Entity&lt;User&gt;().HasOptional(x =&gt; x.CreatedBy).WithMany().HasForeignKey(x =&gt; x.CreatedById).WillCascadeOnDelete(false); mb.Entity&lt;User&gt;().HasOptional(x =&gt; x.ModifiedBy).WithMany().HasForeignKey(x =&gt; x.ModifiedById).WillCascadeOnDelete(false); mb.Entity&lt;Employee&gt;().HasOptional(x =&gt; x.CreatedBy).WithMany().HasForeignKey(x =&gt; x.CreatedById).WillCascadeOnDelete(false); mb.Entity&lt;Employee&gt;().HasOptional(x =&gt; x.ModifiedBy).WithMany().HasForeignKey(x =&gt; x.ModifiedById).WillCascadeOnDelete(false); } </code></pre> <p><strong>EDIT:</strong> Or you could use TPH. Then your model creating look like this</p> <pre><code>protected override void OnModelCreating(DbModelBuilder mb) { mb.Entity&lt;CommonFields&gt;(). .Map(x =&gt; x.ToTable("Users")) .Map&lt;User&gt;(x =&gt; x.Requires("__type").HasValue(1) .Map&lt;Employee&gt;(x =&gt; x.Requires("__type").HasValue(2); mb.Entity&lt;CommonFields&gt;().HasOptional(x =&gt; x.CreatedBy).WithMany().HasForeignKey(x =&gt; x.CreatedById).WillCascadeOnDelete(false); mb.Entity&lt;CommonFields&gt;().HasOptional(x =&gt; x.ModifiedBy).WithMany().HasForeignKey(x =&gt; x.ModifiedById).WillCascadeOnDelete(false); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload