ORM Quick Survey
-
EF for CRUD. (Not by my choice though) Everything else is homegrown.
Wrong is evil and must be defeated. - Jeff Ello
And you wrote some excellent articles about the subject, in case you forgot about them, here they are: [Articles by Jörgen Andersson] :-\
-
RickZeeland wrote:
an ORM should make things easier for developers
RickZeeland wrote:
pity the learning curve is so damn steep
:doh:
Wrong is evil and must be defeated. - Jeff Ello
contradictio in terminis, haha :laugh:
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
I am currently developing my own ORM. I've already completed work on all the key components such as building the database and a (sorta) simple codebase to build applications with it. I've even written a security layer. Once I've got the workflow engine sorted out, I am going to have to find a real world problem to throw it at. I have to thank the folks at Microsoft who built the engine for Operations Manager. After poking around under it's hood for a while, I got the idea to build this little monster. It's a software library that manages it all. With it, I managed to build a password protected file sharing website in a week.
if (Object.DividedByZero == true) { Universe.Implode(); }
-
I am currently developing my own ORM. I've already completed work on all the key components such as building the database and a (sorta) simple codebase to build applications with it. I've even written a security layer. Once I've got the workflow engine sorted out, I am going to have to find a real world problem to throw it at. I have to thank the folks at Microsoft who built the engine for Operations Manager. After poking around under it's hood for a while, I got the idea to build this little monster. It's a software library that manages it all. With it, I managed to build a password protected file sharing website in a week.
if (Object.DividedByZero == true) { Universe.Implode(); }
I spy with my little eye: a new series of articles coming up :-\
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
At home I use EF for the API for my website. I find EF is fine for my purposes. At work we don't have a full ORM but we have our own mapping systems which we have written in-house which, currently, seems to work better for a large complex piece of software with an Oracle database.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
-
I am currently developing my own ORM. I've already completed work on all the key components such as building the database and a (sorta) simple codebase to build applications with it. I've even written a security layer. Once I've got the workflow engine sorted out, I am going to have to find a real world problem to throw it at. I have to thank the folks at Microsoft who built the engine for Operations Manager. After poking around under it's hood for a while, I got the idea to build this little monster. It's a software library that manages it all. With it, I managed to build a password protected file sharing website in a week.
if (Object.DividedByZero == true) { Universe.Implode(); }
-
I spy with my little eye: a new series of articles coming up :-\
Ha, and get skewered some more for my abuse of the Reflection namespace, I think not. :laugh: All joking aside, I don't know if any of what I am working on can be considered proprietary yet but I do like to be able to build a whole new database for a specific set of data in less than half-an-hour. I can also write code like this to work with it:
DataObject dObj = dataAccess.Objects.GetDataObject("4e813bca-8fb0-448e-8f01-d714bd8132a3");
dObj["AnIntegerProperty"].SetValue(42);
dObj.Update(TransactionContext.Current);This code fetches a specific record from a database and then pushes an updated value complete with transaction logging.
if (Object.DividedByZero == true) { Universe.Implode(); }
-
Good luck with this. I agree it is the best way not to depend on a library which change completely (enough) after some months :thumbsup:
It does not solve my Problem, but it answers my question
While the Entity Framework is great and all, the one thing that really pushed me away from it is how it never optimizes the tables. I was mentored by one of the last few people who earned their SQL Server Master's Certification and he always told me that how you structure your table can have a equal if not bigger performance impact than how you write your queries. It makes perfect sense when you think about if from a database engine point of view. What's the point of simplifying development if your data lives in performance sucking tables.
if (Object.DividedByZero == true) { Universe.Implode(); }
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
Is LINQ to SQL actively developed/maintained today?
Nish Nishant Consultant Software Architect Ganymede Software Solutions LLC www.ganymedesoftwaresolutions.com
-
Right, I haven't yet encountered a database access situation that couldn't easily be dealt with by using DataReaders, DataTables, DataViews, DataRows, etc. Microsoft even provides DataAdapters (ptui) for Bob's sake! ORMs are definitely a solution looking for a problem.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
-
Ha, and get skewered some more for my abuse of the Reflection namespace, I think not. :laugh: All joking aside, I don't know if any of what I am working on can be considered proprietary yet but I do like to be able to build a whole new database for a specific set of data in less than half-an-hour. I can also write code like this to work with it:
DataObject dObj = dataAccess.Objects.GetDataObject("4e813bca-8fb0-448e-8f01-d714bd8132a3");
dObj["AnIntegerProperty"].SetValue(42);
dObj.Update(TransactionContext.Current);This code fetches a specific record from a database and then pushes an updated value complete with transaction logging.
if (Object.DividedByZero == true) { Universe.Implode(); }
dObj["AnIntegerProperty"].SetValue(42);
Not suggesting premature optimization, but if this
SetValue
ends up causing any bottlenecks you can do the following which works for properties but not fields because of how the values are set internally:class PropertyInfoWrapper
{
private Action _setValueDelegate;public PropertyInfoWrapper(PropertyInfo property)
{
MethodInfo delegateHelper = typeof(PropertyInfoWrapper).GetTypeInfo()
.GetMethod(nameof(this.CreateDelegate), BindingFlags.Instance | BindingFlags.NonPublic)
.MakeGenericMethod(property.DeclaringType, property.PropertyType);
_setValueDelegate = (Action)delegateHelper.Invoke(
this,
new object[] { property.SetMethod });
}private Action CreateDelegate(MethodInfo method)
{
var del = (Action)method.CreateDelegate(typeof(Action));
return (object obj, object val) => { del((TObject)obj, (TProp)val); };
}public void SetValue(object container, object value) =>
_setValueDelegate(container, value);
}I've been debating on whether to do an article about my RegexContainer[^] project for a similar reason (where this example is from). There's a lot of dislike for reflection even when it's useful.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
Rolled my own in the 90s, rerolled many times since, in 4 different languages. It seems that most devs who are using an ORM have it imposed from management! And they don't seem to be impressed. This thread will be shared with my management :laugh:
Never underestimate the power of human stupidity RAH
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
-
+1 for Dapper along with Dapper.Contrib. I actively avoid contracts that state EF as a requirement. I understand for some people it's the dog danglies but I can't see a compelling case to use EF. I know that's just my mileage but I genuinely would like to know why people use EF as opposed to a micro-orm like Dapper or PetaPoco.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
Rolled my own, which of course has developed over various projects. I have looked at NHibernate and EF. Found NHibernate to be badly documented to the point I couldn't (on my own, as a freelancer) actually get anything to work at all. EF was simple enough to get started with, but trying to maintain it without everything breaking was difficult. Even harder when trying to either optimise things or extend functionality. My own seems very easy to maintain/extend, but of course that's because I know every line of code having written them. I guess to an outside it might be tricky and it does require some hand-coding for each object; but it's a very mechanical process involving just 2 lines of code per d/b field, and a couple of constants.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
-
I'm curious as to what ORM you use and why. For personal projects I use Linq to SQL and I love it. It's simple and works all the time. At work we're using Entity Framework and I detest it. It ALWAYS results in compilation errors and almost always generates entities wrong in some way. I'v heard of some folks here using their home rolled ORM's. For those of you, what ORM would yo say it most resembles?
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.