Вычислить значение при вставке в структуру объекта - PullRequest
1 голос
/ 08 марта 2011

ОК, вот моя функция (немного упрощенная):

public int CreateTestRun(int testID)
{
    var testRun = new TestRun
    {
        TestID = testID,
        TestName =
            TE.Tests.Where(t => t.TestID == testID).Select(t => t.Name).First()
    };

    TE.TestRuns.AddObject(testRun);
    TE.SaveChanges();

    return testRun.TestRunID;
}

Как вы можете видеть, мы немного денормализуем здесь, добавив имя теста, а также TestId.Это специально, поэтому я не хочу это удалять.Это работает нормально, но выполняет запрос к базе данных, чтобы получить имя теста, а затем другой, чтобы выполнить вставку.То, что я хочу, это способ получить название теста на вставке.Я знаю, что могу легко сделать это с помощью триггера, но мне было интересно, есть ли способ сделать это в Entity Framework.

1 Ответ

0 голосов
/ 08 марта 2011

Невозможно сделать это в структуре сущностей, не выбрав сначала имя.Если вы хотите просто вставить, который также задаст имя, используйте либо триггер базы данных, либо создайте хранимую процедуру для вставки тестового прогона, и позвольте процедуре выбрать имя (это будет ваш выбор, если вы хотите получить имя в приложении после вставки).Импортируйте процедуру в модель и сопоставьте ее для вставки операции в объект TestRun.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...