2017-01-17 2 views
0

У меня есть следующий код:Entity Framework создать FirstOrDefaultAsync добавить новую запись

var preferences = await Context.Preferences.Where(x => x.UserId == user.Id).FirstOrDefaultAsync(); 

который проверяет базу данных, чтобы увидеть, если есть запись в таблице настроек, что соответствует соответствующему идентификатору пользователю

Ситуации Я в настоящее время есть в том, что не существует запись, соответствующая этому идентификатором пользователя, поэтому я проверить нуль, как показано ниже, а затем создать новый объект:

 if (preferences == null) 
     { 
      preferences = new Preference() { UserId = user.Id }; 
     } 

затем, в дальнейшем о п Int он код, все изменения сохраняются с помощью этой строки:

await Context.SaveChangesAsync(); 

, который, насколько я понимаю, сохраняет все изменения, сделанные с помощью объекта контекста.

Проблема в том, что когда предпочтения равны нулю, вновь созданный объект не является частью контекста, поэтому не сохраняется.

Правильно ли я понимаю?

Если да, как я могу получить это, чтобы сохранить.

Я попытался следующие:

if (preferences == null) 
      { 
       Context.Preferences = new Preference() { UserId = user.Id }; 
      }    

, но это не работает (не удивительно).

Я уверен, что это довольно просто, но я не могу видеть, ADN не смогли найти что-нибудь, чтобы помочь мне ....

ответ

1

Я нашел ответ:

if (preferences == null) 
{ 
    preferences = new Preference() { UserId = user.Id }; 
    Context.Preferences.Add(preferences); 
} 
Смежные вопросы