c# - Entity framework: StoreGeneratedPattern="Computed" property -


i have datetime property. need property's default value datetime.now. , found out can specify attribute storegeneratedpattern="computed" , set (getdate()) in sql. works successfully. can't change property in code. need change property datetime value. changes not saved.

setting property computed telling ef cannot set value directly. how you? property exists sake of computed columns, definition not saved database.

unfortunately, ef's "default value" property can set values known @ compile-time, , not datetime.now

this link provides decent workaround:

setting default value of datetime property datetime.now inside system.componentmodel default value attrbute


you can handle savingchanges event on context, , add default values there, happens when call savechanges(), not when object created.

    partial void oncontextcreated() {         this.savingchanges += new eventhandler(accrualtrackingentities_savingchanges);     }      void accrualtrackingentities_savingchanges(object sender, eventargs e) {         list<invoice> invoices = this.objectstatemanager             .getobjectstateentries(system.data.entitystate.added | system.data.entitystate.modified)             .select(entry => entry.entity)             .oftype<invoice>().tolist();          foreach(invoice in invoices)             if (i.entitystate == system.data.entitystate.added) {                 //set default values             } else {                 //??  whatever             }     } 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -