Почему бы не запуститься с SQL Server Express и мигрировать когда, у Вас есть деньги? Тем путем можно переместиться к тому, что Вы рассматриваете идеалом и уменьшаете затраты преобразования.
NHibernate работает хорошо с PostgreSQL (является ли дб в Windows или подобных UNIX Ose), и.NET работает хорошо с ним с помощью поставщика дб Npgsql.
Единственной "проблемой", которую Вы получите, является, конечно, PostgreSQL, не делает T-SQL. На самом деле сохраненный proc язык его PL/pgSQL ближе к МН Oracle / SQL, чем это - к SQL Server MS T-SQL. Таким образом, необходимо будет повторно кодировать сохраненный procs, и будут некоторые глюки, чтобы не упустить, если Вы сделаете ADO.NET. При использовании NHibernate Вы, вероятно, не должны будете волноваться очень об этом. Никакой LINQ к SQL, хотя, так жесткая удача для Вас.
PostgreSQL масштабируем и работает хорошо теперь с Windows (более ранние версии не поддерживали Windows официально), и pgAdmin является хорошим инструментом управления для него, Вы сможете сделать большую часть материала, который можно сделать с инструментами GUI SQL Server с ним в скором времени.
Я не думаю, что это - плохая идея, но большой опыт.
По тому, как NHibernate является способом пойти, Linq к Nhibernate находится в процессе тяжелого развития и доступен в соединительной линии поэтому, если Вы заботитесь, "о котором я не забочусь" о Linq, не паника для использования его.
Если Вы пойдете с PostgreSQL, то Вы не сможете использовать LINQ для SQL. В настоящее время LINQ только работает с SQL Server (возможно Oracle). Я не уверен в NHibernate. Кроме того, если Вы используете PostgreSQL, в прошлый раз, когда я проверил, они отбросили поддержку окон. Таким образом, Вы будете изучать наличие второго поля, запускающего Linux для DB.
[Править]
Оказывается, что PostgreSQL поддерживается на окнах. Я не могу вспомнить, где я видел, что поддержка была отменена. Так или иначе я услышал, что это работает лучше на Linux так или иначе, таким образом, Вы могли бы хотеть изучить выполнение настолько независимо.