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

try catch がないと例外がスローされるため、select ステートメントが値を返さなかったときに try catch を使用しないことが可能かどうかを尋ねたいと思います。

ここに画像の説明を入力 提供された画像の更新または挿入を行っています。

4

2 に答える 2

1

基準に対して 0 レコードを返すと、First は失敗します。FirstOrDefault を使用すると、null オブジェクトが返されます (ほとんどの場合)。

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 に答える