实体框架创建FirstOrDefaultAsync添加新条目

时间:2017-01-17 15:52:12

标签: c# entity

我有以下代码:

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

检查数据库以查看首选项表中是否存在与相关用户ID

对应的条目

我目前的情况是没有与此userID对应的条目,所以我检查null,如下所示,然后创建一个新对象:

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

然后,进一步在int代码中,使用以下行保存所有更改:

await Context.SaveChangesAsync();

据我所知,保存了对上下文对象所做的所有更改。

问题是,当preferences为null时,新创建的对象不是上下文的一部分,因此不会被保存。

我的理解是否正确?

如果是这样,我怎样才能保存。

我尝试了以下内容:

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

但这不起作用(不出所料)。

我确信这很简单,但我看不到adn找不到任何帮助我的东西....

1 个答案:

答案 0 :(得分:1)

我找到了答案:

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