Background: I'm a recent degree graduate and software developer. The company I work at has a relatively small team with 8 members. I'm the newest on the team and have been here 10 months.
I get along well with one of the senior developers whenever I'm talking about anything other than code specifics. I need to go to him for support frequently since he knows .NET quite well. When we are talking about the different ways of solving a technical problem I'm having trouble with there is noticable conflict and tension. This is because we both have different ways of doing things and a different fundamental thought proccess. Just one example (of many) where we think differently is that I was trained with more focus on object oriented design, using inheritance whereas he sees data by the way it would fit into a table and even questions why you would use inheritance versus just a plain reference to a parent object.
Whenever I try to politely say something along the lines of "I see your point, but I still think this is the better approach because x y z" he doesn't see my point of view and even gets a little bit more insistent that the method he is recomending is better and this causes increased tension. I do understand where he is coming from and I can see the benefits of doing it his way, however I see more benefits from solving the problem my way.
So, my question is how do I deal with him in a way that would see my relations with him improving or is the best approach to simply enforce some space between him and me when it comes to technical conversations and as a result inhibiting him becoming a valuable mentor?
NOTE: How can I reduce communication gaps with a colleague who has different working style? <-- A similar question but more about communication which is not an issue.
EDIT: This person is not my superior, he is simply a more experienced colleague, the boss of mine (I have 2...) that is in charge of my work works and thinks the same way as me when it comes to solving problems. This means that implementing a solution in the way this other developer is suggesting would result in me having to have the same discussion with my boss but me arguing for an implementation I don't really believe in. My boss doesn't know .NET very well however so he is unable to assist with the technical/implementation questions I have.
EDIT 2: I changed the question and removed a lot of the technical detail as per suggestion in comments.