[1] Eu cel putin, nu am gasit un tool / framework / etc. pentru O/RM care sa fie 100% in spiritul programarii orientate - obiect.
[2] Intre linq to sql si nhibernate , cred ca as alege un Sistem de Gestiune a Bazelor de Date pseudo-Obiectual de exemplu: Matisse (din pacate are si el lipsuri).
http://www.codeproject.com/dotnet/introtomatisse_part1.asp
http://www.codeproject.com/dotnet/introtomatisse_part2.asp
http://www.codeproject.com/dotnet/introtomatisse_part3.asp
http://www.codeproject.com/dotnet/introtomatisse_part4.asp
http://www.codeproject.com/dotnet/introtomatisse_part5.asp
http://www.codeproject.com/aspnet/introtomatisse_part6.asp
http://www.codeproject.com/dotnet/AyalDataPersistence.asp
Pt a selecta una din cele solutii as realiza o serie de teste (adaugare, modificare, stergere de obiecte + interogari tip selectie - read) atat cu linq to sql cat si cu nhibernate. Pt. a obtine niste rezultate cat de cat relevante trebuie depasita faza adauga un obiect produs in baza de date si citeste obiectul produs cu id-ul 111 din baza de date. Spun asta pt. ca in realitate nu vei avea decat in foarte putin cazuri de inserat / adaugat in BD un singur obiect. Va trebui sa lucrezi cu un graf de obiecte. Cu alte cuvinte trebuie avut in vedere un graf cu cel putin 3 clase, ca de exemplu Factura -> ProdusFacturat(linie factura) -> Produs (eventual cu asocieri bidirectionale F <-> PF <-> P). Cel mai bun castiga. Oare ?
Daca ma intrebi ce as alege Oracle sau SQL Server as alege fara ezitare SQL Server, dar intre LINQ to SQL si NHIBERNATE ...
Sincer , nu m-as complica cu O/RM.
Legat de NHibernate: ai incercat NHibernate Query Analyzer ?