Hopefully I’m not the only one having trouble with aggregates, Linq to SQL and empty results. The query I had was something like the following.
var result = (from v in db.Table select v.IntColumn).Max();
This fails with an exception if Table is empty.
The null value cannot be assigned to a member with type
System.Int32 which is a non-nullable value type.
So after some reading on MSDN I found the extension method Queryable.DefaultIfEmpty, it returns a collection with one element that has the default value of the type of the IQueryable<T> if the IQueryable<T> is empty, that looked like it could solve my problem. But I quickly found out that it is not supported by Linq to SQL.
Could not format node 'OptionalValue' for execution as SQL.
So then after reading a blog post about this I ended up with the following query that does what I want.
var result = (from v in db.Table select (int?)v.IntColumn).Max()
It has the side effect that the generated SQL query contains an extra nested select but I think that is acceptable.
SELECT MAX([t1].[value]) AS [value]
SELECT [t0].[IntValue] AS [value]
FROM [Table] AS [t0]
) AS [t1]
Some time ago I gave up on scheduleworld. I tried using Plaxo that synced to Microsoft Outlook and from there to my phone for a while but it was just to cumbersome. I had hoped that Plaxo would launch a SyncML solution, but that doesn’t seem likely for the foreseeable future.
Now I’m trying GooSync that currently only syncs with Google Calendar, but they recently announced that they were adding Google Contacts sync the next month or so. A big advantage of GooSync compared to Plaxo is that they handle events that you were invited to and support syncing multiple calendars, although to sync more calendars that the default you have to pay. But I don’t really mind that as long as the price is right, and GooSync is pretty cheap.
So now all I need is for Plaxo to add support for Google Contacts sync. Then I can sync my contacts and calendar wirelessly wherever I am to my phone and get contact updates from Plaxo. Maybe it’ll happen, but I wont hold my breath.
I’ve put some photos from my recent trip to Scotland with my scouts, aged 12 to 18, on Flickr.
We walked from Fort William to a train station called Corrour, which was about 30 km. It was mostly fun with very varied weather.
Some time ago Google started to detect my p1i on the download page for the mobile gmail app. Unfortunately the p1i version does not work correctly on a p1i phone. No fullscreen and the back button does not work.
Fortunately it looks like the version for SE k750i works correctly on SE p1i. I got it using the following URL:
Update 20080409: The above URL is now broken, and Google has fixed the fullscreen issue with the P1i version of Gmail j2me but not the back button.
The first one is most likely sleep, and the second one hibernate.
Just experienced my first crash in Bioshock. Apparently it’s not a good idea to take a photo of a little sister just after you’ve rescued her. 😉 Most likely that was just a coincidence, but now I have to replay quite a lot.
Why can’t I send a crash report from my Xbox 360 as is possible in Windows when applications missbehave?
Had some trouble creating a patch with MsiMsp.exe version 4.00 yesterday.
ERROR: Cannot overwrite patch '%TEMP%\~PCW_TMP.TMP\tempcopy.msp'. Check the permissions to make sure that patchwiz will have access to the file. (Note, this path cannot be a folder.)
The mistake I had made was pretty simple, but the error message above sent me in the wrong direction when trying to solve it. I thought there was a problem creating the temporary file, silly me. The issue was instead that the directory where I wanted the output msp file to be created didn’t exist.
Finished all the quests that give you achievements in Oblivion yesterday, and a lot more side quests along the way. I’ve been playing the game off and on since it came out with probably somewhere close to 300 hours total playtime. Sounds pretty crazy, but I sure got my moneys worth. 🙂
I skipped over most of the dungeons and ruins unless I had to enter them because of quests since they were so boring and repetitive. Also, since everything leveled with you all sense of progress was lost. What I did spend my time on was the quests and books in the game. I loved the Shivering Isles and Dark Brotherhood quests. The main quests that involved the gates to Oblivion were really boring though. There was nothing in Oblivion to discover, only lava and some really repetitive towers to climb.
Solved a problem with a build script last week. I had somehow caused the build to under some conditions take a very long time to start with heavy disk IO. After reviewing some recent changes I found the cause.
I had a ItemGroup that looked something like the following.
Apparently MsBuild evaluates all ItemGroups even if the condition of the group or item evaluates to false. The result is just discarded if the condition evaluates to false. So the item above included all dll files on the entire hard drive when PathProperty was not set. By trial and error I found out that the condition of Choose elements are evaluated before the items they contain.
So to speed things up I changed the above to the following.
Is this behaviour obvious to everyone else? Couldn’t find anything about it while reading the conditions documentation nor the documentation on items and properties on MSDN.
I wonder who thought a list like this would be helpful for anyone looking for more information. 🙂
From Varieties of Custom Controls on MSDN.