LINQ(2 SQL) Insert Multiple Tables Question

Posted by Refracted Paladin on Stack Overflow See other posts from Stack Overflow or by Refracted Paladin
Published on 2010-05-13T17:01:43Z Indexed on 2010/05/13 17:54 UTC
Read the original article Hit count: 574

Filed under:
|
|
|

I have 3 tables. A primary EmploymentPlan table with PK GUID EmploymentPlanID and 2 FK's GUID PrevocServicesID & GUID JobDevelopmentServicesID. There are of course other fields, almost exclusively varchar(). Then the 2 secondary tables with the corresponding PK to the primary's FK's.

I am trying to write the LINQ INSERT Method and am struggling with the creation of the keys. Say I have a method like below. Is that correct? Will that even work? Should I have seperate methods for each?

Also, when INSERTING I didn't think I needed to provide the PK for a table. It is auto-generated, no?

Thanks,

public static void InsertEmploymentPlan(int planID, Guid employmentQuestionnaireID, string user, bool communityJob, bool jobDevelopmentServices, 
                                                                            bool prevocServices, bool transitionedPrevocIntegrated, bool empServiceMatchPref)
    {
        using (var context = MatrixDataContext.Create())
        {
                var empPrevocID = Guid.NewGuid();
                var prevocPlan = new tblEmploymentPrevocService
                                     {
                                         EmploymentPrevocID = empPrevocID
                                     };
                context.tblEmploymentPrevocServices.InsertOnSubmit(prevocPlan);

                var empJobDevID = Guid.NewGuid();
                var jobDevPlan = new tblEmploymentJobDevelopmetService()
                {
                    JobDevelopmentServicesID = empJobDevID
                };
                context.tblEmploymentJobDevelopmetServices.InsertOnSubmit(jobDevPlan);

                var empPlan = new tblEmploymentQuestionnaire
                                  {
                                      CommunityJob = communityJob,
                                      EmploymentQuestionnaireID = Guid.NewGuid(),
                                      InsertDate = DateTime.Now,
                                      InsertUser = user,
                                      JobDevelopmentServices = jobDevelopmentServices,
                                      JobDevelopmentServicesID =empJobDevID,
                                      PrevocServices = prevocServices,
                                      PrevocServicesID =empPrevocID,
                                      TransitionedPrevocToIntegrated =transitionedPrevocIntegrated,
                                      EmploymentServiceMatchPref = empServiceMatchPref 
                                  };
                context.tblEmploymentQuestionnaires.InsertOnSubmit(empPlan);

                context.SubmitChanges();
        }
    }

I understand I can use more then 1 InsertOnSubmit, See SO ? HERE, I just don't understand how that would apply to my situation and the PK/FK creation.

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET