Xtensive.Orm 7.1.2

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Xtensive.Orm --version 7.1.2                
NuGet\Install-Package Xtensive.Orm -Version 7.1.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Xtensive.Orm" Version="7.1.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Xtensive.Orm --version 7.1.2                
#r "nuget: Xtensive.Orm, 7.1.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Xtensive.Orm as a Cake Addin
#addin nuget:?package=Xtensive.Orm&version=7.1.2

// Install Xtensive.Orm as a Cake Tool
#tool nuget:?package=Xtensive.Orm&version=7.1.2                

DataObjects.Net

DataObjects.Net is a persistence and object-relational mapping framework for the Microsoft .NET. It allows developers to define persistent objects as well as business logic directly in C#, Visual Basic or F#. The persistent objects can be retrieved by LINQ queries. Persistent data can be stored in SQL Servers. In contrast to many other ORM frameworks the database model is generated and maintained automatically.

Supported databases:

  • MS SQL Server 2008 R2, 2012, 2014, 2016, 2017, 2019, 2022
  • MS Azure SQL Database
  • Oracle 10g, 11g
  • PostgreSQL 8.3, 8.4, 9.x, 10, 11, 12, 13, 14, 15
  • MySQL 5.6, 5.7, 8.0
  • Firebird 2.5, 4.0
  • Sqlite 3

Providers for the databases are available as separate packages and may be installed following way

    dotnet add package Xtensive.Orm.SqlServer
    dotnet add package Xtensive.Orm.Oracle
    dotnet add package Xtensive.Orm.PostgreSQL
    dotnet add package Xtensive.Orm.MySql
    dotnet add package Xtensive.Orm.Firebird
    dotnet add package Xtensive.Orm.Sqlite

Usage

The following code demonstrates basic usage of DataObjects.Net. For full tutorial configuring Domain, defining the model and querying data see our documentation.

Create a domain configuration configuration to connect to certain database

    // create configuration with connection to Tests database on local instance of MS SQL Server
    var domainConfiguration = new DomainConfiguration(@"sqlserver://localhost/Tests");
	
    // register types form certain namespace which contains domain model persistent types -
	// the types derrived from Xtensive.Orm.Entity and/or Xtensive.Orm.Structure
    domainConfiguration.Types.Register(typeof (Person).Assembly, typeof (Person).Namespace);
	
    // create database structure from scratch
    domainConfiguration.UpgradeMode = DomainUpgradeMode.Recreate;

Build domain by the configuration created before. Usually, domain is built when the application starts and disposed just before the application shuts down.

    var domain = Domain.Build(domainConfiguration);

Query data from database, modify results and/or create new entites

    // open a session to database
    using (var session = domain.OpenSession()) {
	  // and transaction
      using (var transactionScope = session.OpenTransaction()) {
        // query for existing Anton Chekhov
        Author existingAuthor = session.Query.All<Author>()
          .Where(author => author.FirstName=="Anton" && author.LastName=="Chekhov")
          .FirstOrDefault();

        //if Anton Pavlovich isn't in database yet then and him
        if (existingAuthor==null) {
          existingAuthor = new new Author(session) {
            FirstName = "Anton",
            LastName = "Chekhov";
          }
        }

        // add new book and assign it with Anton Chekhov
        existingAuthor.Books.Add(new Book(session) {Title = "The Cherry Orchard"});

        // commit opened transaction to save changes made within it
        transactionScope.Complete();
      }
    }

Dispose domain on application shut down

    domain.Dispose();
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (16)

Showing the top 5 NuGet packages that depend on Xtensive.Orm:

Package Downloads
Xtensive.Orm.BulkOperations

Adds support for bulk insert, update and delete operations for DataObjects.Net-powered domain models

Xtensive.Orm.Tracking

Adds tracking functionality for DataObjects.Net-powered projects

Xtensive.Orm.Web

Adds integration with ASP.NET for DataObjects.Net-powered projects

Xtensive.Orm.PostgreSql

Adds support for PostgreSQL to DataObjects.Net

Xtensive.Orm.SqlServer

Adds support for MS SQL Server to DataObjects.Net

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
7.2.0-Beta-1 514 12/28/2023
7.1.2 555 10/18/2024
7.1.1 16,811 11/14/2023
7.1.0 1,762 4/12/2023
7.1.0-RC 820 3/9/2023
7.1.0-Beta-2 907 12/19/2022
7.1.0-Beta-1 799 7/4/2022
7.0.5 458 6/3/2024
7.0.4 806 11/12/2023
7.0.3 5,372 3/21/2022
7.0.2 4,367 2/8/2022
7.0.1 3,508 10/29/2021
7.0.0 3,129 6/2/2021
6.0.13 682 4/4/2024
6.0.12 15,305 11/10/2023
6.0.11 3,364 1/12/2023
6.0.10 4,965 4/29/2022
6.0.9 4,984 2/2/2022
6.0.8 3,481 10/28/2021
6.0.7 54,131 8/27/2021
6.0.6 3,594 5/24/2021
6.0.5 3,778 3/9/2021
6.0.4 19,716 12/22/2020
6.0.3 4,031 9/29/2020
6.0.0 4,438 1/28/2020
5.1.0-Beta-1 7,318 1/30/2015
5.0.24 2,200 4/27/2021
5.0.23 2,136 2/4/2021
5.0.22 2,270 11/18/2020
5.0.21 2,214 11/6/2020
5.0.20 2,768 12/25/2019
5.0.19 20,099 5/30/2019
5.0.19-Beta-2 2,781 4/16/2019
5.0.19-Beta-1 2,720 12/29/2018
5.0.18 6,302 9/28/2018
5.0.18-Beta-3 2,727 7/2/2018
5.0.18-Beta-2 3,026 6/6/2018
5.0.18-Beta-1 2,924 4/24/2018
5.0.17 3,788 2/27/2018
5.0.17-Beta-3 2,922 2/12/2018
5.0.17-Beta-2 3,033 1/12/2018
5.0.17-Beta-1 1,796 12/28/2017
5.0.16 21,417 12/1/2017
5.0.16-Beta-1 2,937 9/27/2017
5.0.15 3,221 8/1/2017
5.0.14 3,184 6/19/2017
5.0.13 3,289 3/22/2017
5.0.12 3,011 2/14/2017
5.0.11 13,023 1/26/2017
5.0.11-RC2 2,902 12/16/2016
5.0.11-RC 3,269 9/20/2016
5.0.10 5,418 8/5/2016
5.0.10-RC 2,966 6/30/2016
5.0.9 3,965 3/3/2016
5.0.8 3,050 2/15/2016
5.0.7 2,975 1/27/2016
5.0.7-RC2 2,977 12/8/2015
5.0.7-RC 3,046 9/10/2015
5.0.6 3,589 7/3/2015
5.0.5 3,321 4/23/2015
5.0.4 3,085 3/19/2015
5.0.4-RC 3,243 2/25/2015
5.0.3 4,261 10/31/2014
5.0.2 3,218 9/11/2014
5.0.1 3,343 8/21/2014
5.0.0-RC2 3,025 8/1/2014
5.0.0-RC 2,976 7/21/2014
5.0.0-Beta-3 2,941 5/28/2014
5.0.0-Beta-2 3,119 2/28/2014
5.0.0-Beta-1 2,925 11/14/2013
4.6.9 3,161 7/3/2015
4.6.8 3,145 8/1/2014
4.6.7 3,071 6/23/2014
4.6.6 3,419 4/9/2014
4.6.5 3,339 1/7/2014
4.6.4 3,495 9/30/2013
4.6.4-RC 1,891 8/5/2013
4.6.3 3,804 2/4/2013
4.6.2 3,725 11/28/2012
4.6.1 3,356 11/16/2012
4.6.0 18,974 10/5/2012
4.6.0-RC 1,861 10/1/2012
4.6.0-Beta-3 1,866 9/14/2012
4.6.0-Beta-2 1,881 7/13/2012
4.5.8 2,727 9/30/2013
4.5.8-RC 1,611 8/5/2013
4.5.7 2,784 2/4/2013
4.5.6 3,195 11/16/2012
4.5.5 3,172 10/5/2012
4.5.5-RC 1,792 10/1/2012
4.5.4 3,221 8/11/2012
4.5.4-RC2 1,729 8/3/2012
4.5.4-RC 1,773 7/13/2012
4.5.3 3,316 7/2/2012
4.5.3-RC4 1,719 6/22/2012
4.5.3-RC3 1,824 6/14/2012
4.5.3-RC2 1,782 6/4/2012
4.5.3-RC 1,880 5/12/2012
4.5.2 3,155 5/10/2012
4.5.1 12,237 5/5/2012
4.5.1-RC2 1,794 5/2/2012
4.5.1-RC 1,773 4/23/2012