0

我有这个代码:

                var existsQuery = from e
                     in TableServiceContext.CreateQuery<entity>(tableName)
                              where
                              e.PartitionKey == entity.PartitionKey
                              && e.RowKey == entity.RowKey
                              select e;
            entity existingObject;
            try
            {
                existingObject = existsQuery.First();
            }
            catch (Exception) { existingObject = null; }

我只想问我是否可以在 select 语句没有返回任何值的时候不使用 try catch,因为没有 try catch 我会抛出异常。

我正在更新或插入在此处输入图像描述 提供的图像。

4

2 回答 2

1

如果您为条件返回 0 条记录,First 将失败,如果您使用 FirstOrDefault,您将返回一个空对象(在大多数情况下)。

var existsQuery = from e
                 in TableServiceContext.CreateQuery<entity>(tableName)
                          where
                          e.PartitionKey == entity.PartitionKey
                          && e.RowKey == entity.RowKey
                          select e;
        entity existingObject = existsQuery.FirstOrDefault();
于 2013-05-31T03:51:26.777 回答
0

尝试如下

var source = TableServiceContext.CreateQuery<entity>(tableName).Where(e=>e.PartitionKey == entity.PartitionKey  && e.RowKey == entity.RowKey);

if(source != null && source.Any())
{
    var existingObject = source.FirstOrDeFault();
    // do somthing with existingObject 
}else
{
    // existingObject is null 
}
于 2013-05-31T03:20:13.593 回答