Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架创建FirstOrDefaultAsync添加新条目_C#_Entity - Fatal编程技术网

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

C# 实体框架创建FirstOrDefaultAsync添加新条目,c#,entity,C#,Entity,我有以下代码: var preferences = await Context.Preferences.Where(x => x.UserId == user.Id).FirstOrDefaultAsync(); 它检查数据库以查看preferences表中是否有与相关用户ID对应的条目 我目前的情况是,没有与此userID对应的条目,因此我检查null,如下所示,然后创建一个新对象: if (preferences == null) {

我有以下代码:

var preferences = await Context.Preferences.Where(x => x.UserId == user.Id).FirstOrDefaultAsync();
它检查数据库以查看preferences表中是否有与相关用户ID对应的条目

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

        if (preferences == null)
        {
            preferences = new Preference() { UserId = user.Id };
        } 
然后,在代码中进一步说明,使用以下行保存所有更改:

await Context.SaveChangesAsync();
据我所知,它保存了使用上下文对象所做的所有更改

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

我的理解正确吗

如果是这样的话,我怎样才能把它保存下来

我尝试了以下方法:

if (preferences == null)
            {
                Context.Preferences = new Preference() { UserId = user.Id };
            }            
但这并不起作用(毫不奇怪)

我相信这很简单,但我看不出,我也找不到任何东西来帮助我……

我找到了答案:

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