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);
}