Получение доступа к недавно вставленному Identity ID до вызова метода SaveChanges - PullRequest
1 голос
/ 11 февраля 2010

Я использую LINQ Entity Framework и столкнулся со сценарием, в котором мне нужно получить доступ к вновь вставленной записи Identity перед выполнением нескольких операций с использованием процедуры. Ниже приведен код sinppet:

public void SaveQuote(Domain.Quote currentQuote)
    {
        try
        {
            int newQuoteId;
            //Add quote and quoteline details to db 
            if (currentQuote != null)
            {
                using (QuoteContainer quoteContainer = new QuoteContainer())
                {
                    **quoteContainer.AddToQuote(currentQuote);**

                    newQuoteId = currentQuote.QuoteId; 
                }
            }
            else return;

            // Execution of some stored Procedure by using above newly generated QuoteId

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

В следующей функции quoteContainer.SaveChanges (); будет вызван для принятия изменений в БД.

Может ли кто-нибудь подсказать, верен ли вышеуказанный подход?

1 Ответ

1 голос
/ 11 февраля 2010

пока правильно.
помните: вы не можете получить IDENTITY, пока не произойдет вставка! при обновлении ваша сущность уже содержит IDENTITY (в основном PK)

...