Answered by:
Entity Framework 6 one to many insert problem

Question
-
User777726829 posted
I am having an issue whenever I try to insert a one <g class="gr_ gr_106 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="106" data-gr-id="106">to</g> many <g class="gr_ gr_111 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="111" data-gr-id="111">relationship</g>. The record for the one table gets stored, however, nothing happens in the many <g class="gr_ gr_250 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="250" data-gr-id="250">table</g>. The relationship <g class="gr_ gr_470 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="470" data-gr-id="470">seem</g> to have been created successfully, as the foreign key (one table's primary key) is in the many <g class="gr_ gr_413 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="413" data-gr-id="413">table</g>.
I welcome any suggestion, as this problem is setting me back.
Thanks
Wednesday, December 20, 2017 10:50 PM
Answers
-
User1120430333 posted
http://www.entityframeworktutorial.net/EntityFramework5/add-entity-graph-using-dbcontext.aspx
<copied>
Add Entity Graph using DbContext:
The following example adds a student entity graph in disconnected mode, using the DbSet.Add() method which marks the added state to all the entities:
<end>
One of the pages in the above link shows how to do it.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Thursday, December 21, 2017 3:28 AM
All replies
-
User1120430333 posted
EF can be in one of two states. A Web application running on a Web server is stateless. Therefore EF is being used in a Web application as a stateless solution. So, you must tell EF the entity's state when trying to persist it to the database.
Thursday, December 21, 2017 1:41 AM -
User777726829 posted
Thanks for <g class="gr_ gr_12 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="12" data-gr-id="12">you</g> response. See code snippet below:
public void SetAsAdded<TEntity>(TEntity entity) where TEntity : BaseEntity
{
UpdateEntityState(entity, EntityState.Added);
}
private void UpdateEntityState<TEntity>(TEntity entity, EntityState entityState) where TEntity : BaseEntity
{
var dbEntityEntry = GetDbEntityEntrySafely(entity);
dbEntityEntry.State = entityState;
}
private DbEntityEntry GetDbEntityEntrySafely<TEntity>(TEntity entity) where TEntity : BaseEntity
{
var dbEntityEntry = Entry<TEntity>(entity);
if (dbEntityEntry.State == EntityState.Detached)
{
Set<TEntity>().Attach(entity);
}
return dbEntityEntry;
}
I did tell EF the state.
Thursday, December 21, 2017 2:00 AM -
User1120430333 posted
http://www.entityframeworktutorial.net/EntityFramework5/add-entity-graph-using-dbcontext.aspx
<copied>
Add Entity Graph using DbContext:
The following example adds a student entity graph in disconnected mode, using the DbSet.Add() method which marks the added state to all the entities:
<end>
One of the pages in the above link shows how to do it.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Thursday, December 21, 2017 3:28 AM -
User777726829 posted
Thanks a mil DA924! That approach worked.
Thursday, December 21, 2017 2:28 PM