【问题标题】:C#: How to see if a Linq2SQL entity is in the databaseC#:如何查看 Linq2SQL 实体是否在数据库中
【发布时间】:2010-10-30 14:51:39
【问题描述】:

我想检查一个实体是否已经添加到数据库中。那么,我怎样才能看到ab 之间的这种区别?

var a = dataContext.Things.First(x => x.Name == something);
var b = new Thing { Name = something };

为了更清楚,如果我有这个:

var thing = dataContext.Things.FirstOrDefault(x => x.Name == something) 
            ?? new Thing { Name = something };

如何查看thing是否需要插入?

【问题讨论】:

标签: c# linq-to-sql datacontext


【解决方案1】:

如果您使用FirstOrDefault 而不是First,则如果没有匹配项,则会返回null

至于知道是否需要插入 - 只需记住它是否为 null 开头:

var a = dataContext.Things.FirstOrDefault(x => x.Name == something);
bool needsInsertion = (a == null);
a = a ?? new Thing { Name = something }; 

或者,如果Thing 中有一个由数据库自动填充的 ID 字段,您可以使用它来检测它是否已经在数据库中。

【讨论】:

  • 是的,我知道。也许我的问题不够清楚......我会在我的问题中详细说明。
  • 如果没有插入,id是否总是0?还是别的什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-18
  • 2011-06-02
相关资源
最近更新 更多