c# - EF 5 Code-First Seeding self referencing table -


here's code:

base class:

public class baseent {     [key]     public int id { get;set; }     public datetime insertdate { get; set; }      public int insertuserid { get; set; }     public datetime updatedate { get; set; }     public int updateuserid { get; set; }     [timestamp]     public byte[] timestamp { get; set; }      public virtual user insertuser { get; set; }     public virtual user updateuser { get; set; } } 

user entity:

public class user:baseent {     public string username { get; set; }     public string fullname { get; set; }      public virtual icollection<user> insertedusers { get; set; }     public virtual icollection<user> updatedusers { get; set; }  } 

model creating:

    protected override void onmodelcreating(dbmodelbuilder modelbuilder)     {         modelbuilder.entity<user>()                      .hasrequired(t => t.insertuser)                      .withmany(t=>t.insertedusers)                      .hasforeignkey(t => t.insertuserid).willcascadeondelete(false);         modelbuilder.entity<user>()                      .hasrequired(t => t.updateuser)                      .withmany(t=>t.updatedusers)                      .hasforeignkey(t => t.updateuserid).willcascadeondelete(false);      } 

seed:

    protected override void seed(mcfdatacontext context)     {         context.users.add(new entities.user {id=1,fullname="rusty boi ",username="jhaskdhaksdhk",insertuserid=1,updateuserid=1,updatedate=datetime.now,insertdate=datetime.now });      } 

and here's error encountered in seed part:

{"unable determine valid ordering dependent operations. dependencies may exist due foreign key constraints, model requirements, or store-generated values."}

what have here sort of "chicken , egg" problem. possible solutions:

  • make foreign keys insertuserid , updateuserid nullable
  • do design change: maybe user table shouldn't have insertuserid, updateuserid. solved introducing base class doesn't have insertuserid , updateuserid properties or similar

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -