Won't LINQ2SQL do the job?
LINQ2SQL is Microsoft’s basic tool for O/RM. Like all O/RMs, it translates LINQ queries into SQL. However, it has a few limitations which can immediately disqualify if from enterprise application development. There are a few common scenarios which require enterprise-level features such as Genome’s:SQL Server is not the only database platform out there, but it is the only database platform supported by LINQ2SQL. Genome on the other hand supports Oracle and IBM DB2 as well as SQL Server. Genome is also very flexible, so additional database platforms can be added, given sufficient demand.
LINQ2SQL only allows you to reverse engineer from existing databases, which means that you cannot model your domain and then generate the database. Instead, you can only start with the database model. Genome on the other hand lets you work in either direction: reverse engineer from an existing database or start by modeling your domain. Even when you start off with an existing database, you usually continue modeling in the domain model as well. The domain model is far more expressive than the database model, so we feel that a good O/RM tool should support either approach.
Brown field development is by far a more common scenario than the luxury of a green field; projects typically start off by connecting to existing databases, sometimes veritable decades-old dinosaurs with truly exotic schema patterns. This is where a flexible O/RM tool really proves its value. Genome can support the strangest schemas, and customers have even successfully mapped schemas generated with 4GL tools. This flexibility also gives DBAs the power of optimising database schemas throughout the application development cycle and beyond. Far from rendering DBAs obsolete, good O/RMs will give them better tuning possibilities for their expertise in optimising queries and database schemas (please also see our FAQ on convincing DBAs of the benefits of O/RM).We are amused (but only slightly) that LINQ2SQL, while restricted to the database-first approach, nevertheless does not offer the flexibility required for working with "real", existing databases.