Escolhendo banco de dados e ORM para um projeto .NET

Eu estou trabalhando em um aplicativo .NET usando o Silverlight no lado do cliente. Agora cheguei ao ponto em que quero jogar fora meus dados estáticos no lado do servidor e adicionar um banco de dados.

Para o banco de dados eu adoraria usar um deles ORM, onde eu posso simplesmente marcar minhas classes de modelo e as tabelas de banco de dados são construídas para mim. Eu fiz alguns testes com Groovy e Grails anteriormente, e achei que o GORM fez um bom trabalho. Qual é a melhor maneira de configurar um banco de dados no .net?

A primeira coisa que me impressiona é usar o nHibernate. Eu realmente não sei nada sobre nHibernate, mas eu ouvi muitas pessoas mencionarem isso com entusiasmo. Mas então eu vejo que ADO .Net também é um ORM, que é construído no quadro .. O nHibernate ultrapassa o ADO? E qual é o problema com o LINQ? Eu vejo que é listado como um ORM também, mas eu pensei que LINQ foi mais para a parte de consulta? Posso "definir" o banco de dados por meio do LINQ?

Quaisquer comentários e recomendações são bem-vindos. Eu também adoraria saber se você tem opiniões sobre qual banco de dados usar. Eu assumo que o MS SQL Server é a escolha mais fácil?

questionAnswers(6)

yourAnswerToTheQuestion