DataObjects.Net is the ideal object-relational mapper (ORM) and business logic layer (BLL) development framework for modern .NET projects that:
- Wish to leverage all the best language features and technologies that .NET has to offer
- Have non-trivial domain models with deep inheritance and composite objects
- Prefer code-first, test-driven development
- Cannot settle for less than excellent performance
- Want a solution that scales easily
Latest Releases
Release notes for: DataObjects.Net 7.1.6
[main] Addressed certain issues with nullable DateTimeOffset values
[main] SelectMany with result selector is explicitly not supported when applied after grouping (like .GroupBy(groupingFunc).SelectMany(grouping, selector))
[main] Addressed issue of inability to delete column (including such on rename or change type via column recreation) because of undeleted foreign key
[main] Improved compatibility with non-windows runtimes
[main] Fixed inability to detect certain parameterizable parts within cached queries (Query.Execute()/.ExecuteDelayed()/ExecuteFuture() groups of methods)
[mysql] Fixed milliseconds extraction for DateTime expressions in queries
[mysql] Proper support for milliseconds v5.6+, already created columns will remain the same and new ones will have datetime(6) native type
[mysql] Improved compatibility with non-windows runtimes
[postgresql] For PostgreSQL 13+ apply 'trim_scale' function to results of aggregation to improve compatibility with .NET decimal
[postgresql] Improved compatibility with non-windows runtimes
[bulkoperations] Fixed certain cases of wrong update statements for Firebird provider
[reprocessing] Improved compatibility with non-windows runtimes
7.1.6 01 Nov 2025 release notes
Get it from: GitHub.com NuGet.Org
Release notes for: DataObjects.Net 7.0.7
[main] Addressed certain issues with nullable DateTimeOffset values
[main] SelectMany with result selector is explicitly not supported when applied after grouping (like .GroupBy(groupingFunc).SelectMany(grouping, selector))
[main] Addressed issue of inability to delete column (including such on rename or change type via column recreation) because of undeleted foreign key
[main] Improved compatibility with non-windows runtimes
[main] Fixed inability to detect certain parameterizable parts within cached queries (Query.Execute()/.ExecuteDelayed()/ExecuteFuture() groups of methods)
[mysql] Fixed milliseconds extraction for DateTime expressions in queries
[mysql] Proper support for milliseconds v5.6+, already created columns will remain the same and new ones will have datetime(6) native type
[mysql] Improved compatibility with non-windows runtimes
[postgresql] Improved compatibility with non-windows runtimes
[bulkoperations] Fixed certain cases of wrong update statements for Firebird provider
[reprocessing] Improved compatibility with non-windows runtimes
7.0.7 28 Oct 2025 release notes
Get it from: GitHub.com NuGet.Org
Release notes for: DataObjects.Net 6.0.15
[main] Addressed certain issues with nullable DateTimeOffset values
[main] SelectMany with result selector is explicitly not supported when applied after grouping (like .GroupBy(groupingFunc).SelectMany(grouping, selector))
[main] Addressed issue of inability to delete columns (including such on rename or change type via column recreation) because of undeleted foreign key
[main] Improved compatibility with non-windows runtimes
[main] Fixed inability to detect certain parameterizable parts within cached queries (Query.Execute()/.ExecuteDelayed()/ExecuteFuture() groups of methods)
[mysql] Fixed milliseconds extraction for DateTime expressions in queries
[mysql] Proper support for milliseconds v5.6+, already created columns will remain the same and new ones will have datetime(6) native type
[mysql] Improved compatibility with non-windows runtimes
[postgresql] Improved compatibility with non-windows runtimes
[bulkoperations] Fixed certain cases of wrong update statements for Firebird provider
[reprocessing] Improved compatibility with non-windows runtimes
6.0.15 27 Oct 2025 release notes
Get it from: GitHub.com NuGet.Org
Release notes for: DataObjects.Net 5.0.24
main Fixed rare cases of writing data in wrong column for SingleTable hierarchies
main Fixed incorrect EntitySetState.TotalItemCount calculation for ClientProfile
sqlserver Fixed incorrect translation of DateTimeOffset.Date part extraction
5.0.24 27 Apr 2021 release notes
Get it from: DataObjects.Net Nuget.Org
Release notes for: DataObjects.Net 4.6.9
main Fixed comparison of Keys
mysql Provider is no longer used recursive syntax for join
4.6.9 03 Jul 2015 release notes
Get it from: DataObjects.Net Nuget.Org
Release notes for: DataObjects.Net 4.5.8
main Fixed invalid key comparison under certain conditions
main Fixed EntitySet caching invalid state within DisableSaveChanges() scope
main Fixed overflow when storing large TimeSpan values
main Fixed invalid default values for SessionConfiguration.DefaultIsolationLevel and SessionConfiguration.Options
main Fixed support for referencing connection strings in SessionConfiguration
mysql Fixed translation of bitwise operations
mysql Fixed translation of DateTime.DayOfWeek and DateTime.DayOfYear
4.5.8 30 Sep 2013 release notes
Get it from: DataObjects.Net Nuget.Org
Deliver better solutions – faster
Business domains of arbitrary complexity can be easily modeled in DataObjects.Net. You get tons of must-have features for rapid application development such as transactional entities, lazy loading, change tracking, concurrency, validation, event notifications, N-level undo and much more right out of the box with every domain model you develop.
DataObjects.Net implements a blazing-fast LINQ provider that will satisfy even
the most complex, performance-critical IQueryable use cases that
your demanding users can conceive!
Our fast and reliable support will make certain you cross the finish line with lots of time to spare. The community will eagerly share their success tips and tricks with you.
Pain-free project maintenance
DataObjects.Net brings high performance and great scalability to both the data
access layer (DAL) and the business logic layer (BLL).
Über-Batching Technology™ maintains the ideal conversation between
your application and data storage considerably decreasing the number of roundtrips
there; future queries along with flexible prefetching allows to solve issues
like “SELECT N+1” by a number of ways.
Automatic database schema upgrades and Ruby-on-Rails-like migrations significantly simplifies version-to-version upgrade process and will change how you think about deploying database changes!
Open-source
Since DataObjects.Net 6 the ORM is open-source and licensed under MIT license. We placed it on GitHub so you have access to the source code and can use it freely without license buying*.
We also welcome users' contributions to the project. Have an improvement suggestion or even a new feature to integrate? Open as an issue on Github with detailed info what your commitment does and what benifits it delivers to the project. We will discuss and figure out the best way to make your contribution be part of future DataObjects.Net.
* DataObjects.Net 5 and DataObjects.Net 4.6 continue to have paid licenses and access to the sources. For pricing go here
DataObjects.Net is much more than an ORM, it will save you time and help you deliver a better product that is easier to maintain over time. What are you waiting for? Get started with DataObjects.Net.
Customers
Blog
|


