Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am learning LINQ to SQL (and planning to learn Entity Framework). Initially I used a abstraction layer to convert LINQ to SQL entities into a domain objects. Later I discovered the “Inheritance Mapping” option and removed the abstraction layer and started to use ORM entities directly as domain objects.

After some time, I got a road block when I don’t use abstraction layer. Please read it here: http://stackoverflow.com/questions/11470037/get-all-associate-composite-objects-inside-an-object-in-abstract-way

  1. Is it possible to achieve all tasks without using Abstraction layer over ORM?
  2. What are the rationale to decide have/not have abstraction layer?

REFERENCE:

  1. http://martinfowler.com/bliki/OrmHate.html
share|improve this question
5  
The ORM is the abstraction between the relational database and your objects. Unfortunately, it is a leaky abstraction, as most such abstractions are. –  Oded Jul 13 '12 at 12:20
add comment

1 Answer

  1. Depends on the tasks and the ORm used. both NHibernate and Entity Framework are feature rich which makes it very likely they can. NH also has many hooks you can implement to change its behaviour

  2. abstracttions always have costs (learning, dependency, ...) so unless the value they provide outperforms the consts they should be avoided. An ORM is already an abstraction which most of the time provides more value (when relational Database access is involved).

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.