Using table storage within the Azure platform, a simple query was throwing an exception if the table entry was not found.
MyDataContext dataCtx = new MyDataContext( acctInfo ); var q = from entity in dataCtx.EmailAddresses where entity.PartitionKey == organizationID && entity.RowKey == address select entity; EmailAddress emailAddr = q.FirstOrDefault(); return emailAddr;
I had assumed that an exception would not be thrown if there were no matching entries. The FirstOrDefault() method should have just returned null, right?
Well, not so. Here is a forum message gives a bit of a clue about how the query is actually processed and whether an exception is thrown or an empty data set is returned.
For right now, you’ll have to wrap the query in an exception block:
MyDataContext dataCtx = new MyDataContext( acctInfo ); var q = from entity in dataCtx.EmailAddresses where entity.PartitionKey == organizationID && entity.RowKey == address select entity; EmailAddress emailAddr = null; try { emailAddr = q.FirstOrDefault(); } catch( DataServiceQueryException ex ) { } return emailAddr;