Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Return results from bulk inserts and updates #81

Open
wants to merge 38 commits into
base: development
Choose a base branch
from

Conversation

ewassef
Copy link

@ewassef ewassef commented Apr 24, 2016

This will prevent the standard behavior of Bulk Insert -> Get all the items again. The Bulk insert/Update return results will respect any constraints and identity values.
Will not map complex objects that cannot be mapped via the SqlQuery method...

MikaelEliasson and others added 30 commits June 27, 2014 18:22
When using type hierarchies in an EF project, the TypeName is not exactly the ElementType.FullName, but rather OfType(ElementType.FullName).  
For example:
<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <Condition ColumnName="HireDate" IsNull="false" />
      <Condition ColumnName="EnrollmentDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="EnrollmentDate" 
                      ColumnName="EnrollmentDate" />
      <Condition ColumnName="EnrollmentDate" IsNull="false" />
      <Condition ColumnName="HireDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

You can see documentation here:
http://msdn.microsoft.com/en-us/library/vstudio/bb399272(v=vs.100).aspx

I've tested this change on my project which uses type hierarchies and it works fine.  I did not do any performance checks with the new conditional.
…s (you can only create ObjectSet of base type - note this will note work for deep inheritance, but does work in most simple cases). Added Type Hierarchy (Contact/Person) to test context and created test that fails before the MappingHelper fix.
MappingHelper.cs for Type Hierarchies
Fix for Include to BlogPost table
@ewassef
Copy link
Author

ewassef commented Apr 30, 2016

@MikaelEliasson what do you think?

@ewassef
Copy link
Author

ewassef commented May 13, 2016

Just a friendly reminder @MikaelEliasson

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants