получение идентификатора объекта, созданного внутри объекта в транзакциях c # - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь вставить записи в C # с базой данных Oracle. Я использую транзакции для вставки.

Как получить идентификатор дочернего объекта для вставки в данные следующего объекта? Я могу получить идентификатор родителя, но не могу получить идентификатор дочерних объектов. parent и child являются объектами одного класса.

код выглядит так:

    using (DatabaseContext lContext = new DemoDatabaseContext())
    {
        try
        {                    
            foreach (var alias in pLstAlias)
            {


                DATA lAlias = new DATA();
                lAlias.ID = alias.ID;
                lAlias.FIRST_NAME = alias.FIRST_NAME;
                lAlias.SECOND_NAME = alias.SECOND_NAME;                        
                lAlias.NAME_CONCAT = alias.GetConcatName();
                lAlias.SYSTEM_NAME = alias.GetSystemName(lAlias.NAME_CONCAT);  
                lAlias.Add(lContext);

                if (alias.AKAList != null)
                {
                    foreach (var aka in alias.AKAList)
                    {
                        DATA lChildAlias = DATA();
                        lChildAlias.PARENT_ID = lAlias.ID;
                        lChildAlias.AKA__NAME = aka.FIRST_NAME;                                
                        lChildAlias.NAME_CONCAT = aka.GetConcatName();
                        lChildAlias.SYSTEM_NAME = aka.GetSystemName(lChildAlias.NAME_CONCAT);                                
                            List<DATA2> aliasList = StoreRecodsToObject(lChildAlias.SYSTEM_NAME);

                            if (aliasList != null)
                            {
                                foreach (var item in aliasList)
                                {
                                    DATA DataForAliases = new DATA2();
// here I need to add ID of lChildAlias
                                        DataForAliases.ALIAS_ID = lChildAlias.ID; 
                                        DataForAliases.NAME = item.NAME;                                           
                                        DataForAliases.Add(lContext);
                                }

                            }
                        }



                        lChildAlias.Add(lContext);
                    }
                }



            }
        }
        catch(Exception ex){
            lContext.Rollback();
            return false;
        }
    }
...