Sorry if this is repetitive; I'm having trouble locating the precise response to this query.
I have three tables set up as follows:
FirstName, LastName, PersonId
Business: CompanyId, BusinessName
Order: PersonId, OrderId, and CompanyId
My Order entity class, which was created by EF, includes navigation properties of type Person (not PersonId) and Company because the Order table has a foreign key declared on the columns PersonId and CompanyId.
I must thus first query the person and company tables to obtain the person and company entities before I can insert data into the Order table. The Order object can then be created and saved to the database using the Person and Company entities.
I am given a PersonId and a CompanyId in my scenario.
I would just perform INSERT INTO Order Set (CompanyId, PersonId) - 1 database call in traditional SQL. But with EF, I have to make three database calls. This seems excessive.
Is there a solution to this?
PS: I am utilizing EF 6. I am aware that I can create an expression and only have one call, but that would still result in two subselects.
Foreign key properties can simply be added to the navigation properties and set using the existing ids. By doing this, you will avoid having to search the database for related items only to set the relationship.