Skip to main content
.NET 8.0+
  • The page you are viewing does not exist in the .NET Framework 4.6.2+ platform documentation. This link will take you to the parent topic of the current section.

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

EFCoreObjectSpace Class

An Object Space used for data manipulation in EF Core-based applications that do not use the Security System.

Namespace: DevExpress.ExpressApp.EFCore

Assembly: DevExpress.ExpressApp.EFCore.v24.2.dll

NuGet Package: DevExpress.ExpressApp.EFCore

#Declaration

public class EFCoreObjectSpace :
    CompositeObjectSpace,
    IQuerySupport,
    ISupportServerViews,
    ISupportCriteriaCompiler,
    ISupportServerExpressionEvaluator

#Remarks

If your application uses the Security System, create the SecuredEFCoreObjectSpace instead of EFCoreObjectSpace.

In XAF application, use the XafApplication.CreateObjectSpace method to create this Object Space if the default Object Space Provider is EFCoreObjectSpaceProvider<TDbContext> (see the CreateDefaultObjectSpaceProvider method implementation of your WinApplication descendant).

The following example demonstrates how to use EFCoreObjectSpaceProvider<TDbContext> to create EFCoreObjectSpace in a non-XAF application.

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.EFCore;
using Microsoft.EntityFrameworkCore;
using System;
// ...
class Program {
    static void Main() {
        var objectSpaceProvider = 
            new EFCoreObjectSpaceProvider<ApplicationDbContext>(
            (builder, _) => builder.UseSqlServer(
                ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString));
        IObjectSpace objectSpace = objectSpaceProvider.CreateObjectSpace();
        // ...
    }
}

You can find the full example in the following GitHub repository: How to use the Integrated mode of the Security System in non-XAF applications (EF Core).

To learn more about Object Spaces, refer to the BaseObjectSpace class description.

#Important Note

The EF Core Object Space does not support top level agregate functions in criteria. Use Free Joins instead.

// Invalid code:
// int totalNumber = (int)ObjectSpace.Evaluate(typeof(Department), CriteriaOperator.Parse("Sum([NumberOfEmployees])"), null);
// ...
// Valid code:
int totalNumber = (int)ObjectSpace.Evaluate(typeof(Department), CriteriaOperator.Parse("[<Department>].Sum([NumberOfEmployees])"), null);

#Implements

See Also