ORM Solutions

Support of Many-to-Many Mapping for Component Navigation Properties in Entity Developer

This article explains and gives a practical example of how support of сomponent navigation properties is implemented in Entity Developer for NHibernate.
Support of this functionality includes the possibility of detaching to a complex type for further reusability not only scalar entity properties but also navigation properties with subsequent customization of complete mapping at the level of private mapping of a certain property with type equal to complex type of a certain entity.

There are several ways of component navigation properties mapping in NHibernate:

  • Many-to-one;
  • One-to-many;
  • One-to-one;
  • Many-to-many.

In this article we will consider many-to-many mapping of сomponent navigation properties.
To find out more about the rest of the types of сomponent navigation properties mapping, see the article devoted to them here.
(more…)

Сomponent Сollections Support in Entity Developer

This article explains and gives a practical example of how support of сomponent collections is implemented in Entity Developer for NHibernate. You can take a close look at this type of mapping in the NHibernate documentation here.
This article contains examples of mapping for the following associations:

  • Classic mapping of component collections;
  • A special case of component collections mapping for a many-to-many association.

(more…)

Functionality Improvements in the New Version of LinqConnect

Devart is glad to announce a beta version of completely reworked LinqConnect ORM with better performance and large number of improvements.

New 4.0 version of LinqConnect marks a new milestone in LinqConnect development. Renewed LinqConnect demonstrates a new degree of performance and stability. Now it can be used in most complicated use cases and supports submit of very complex object graphs.

Starting from the 4.0 version, LinqConnect uses only its own classes. It does not reference the System.Data.Linq assembly any more, and this assembly is not loaded with your applications, using LinqConnect. However you don’t need to worry about LINQ to SQL compatibility. Public interface of our classes is completely compatible with the public interface of Microsoft LINQ to SQL classes. Moreover, we provide the Upgrade Wizard for easy upgrading of your LinqConnect projects to the new version of LinqConnect in a few clicks. (more…)

Visual Enhancements in Entity Developer 4.1

As of version 4.1, Entity Developer supports several capabilities for visual presentation such as entity shape coloring, selection-driven highlighting and also contains sets of skins both for the application and its diagram.

This article deals with the following:

(more…)

Set Identity and Computed Properties in Entity Framework Without Triggers

 

This article deals with the following:

(more…)

Entity Developer – EF Code First DbContext Template

Note: To use the template “DbContext”, Entity Framework 4.1 and Entity Framework 4.0 must be installed on your computer.

April 2011 saw the release of a new version of Entity Framework 4.1 that supports fluent mapping and DbContext API. The latest version of Devart Entity Developer is extended with the DbContext template that enables the use of new features in EF v4.1. Initially, fluent mapping was intended to be used in the Code-First (Code Only) approach. However, thanks to our new template, fluent mapping can now be used not only in the Code-First approach, but in the Database-First/Model-First approaches as well.
(more…)

Working with Large Models and Oracle Autoincrement Fields in New Version of Entity Developer

Starting from version 3.20, Entity Developer provides you with additional features to simplify working with models. Now you can split your model into diagrams to improve its readability. Entity Developer automatically generates a sequence and a trigger for autoincrement fields in Oracle when generating the database script from the model or when synchronizing the database with a model. We constantly work on improving Entity Developer and now we are focusing on performance increase and usability enhancement. The following enhancements have been added in the latest version:

(more…)

Table-per-Type vs Table-per-Hierarchy Inheritance

In this article we will compare the performance of both most used inheritance types – Table-per-Hierarchy (TPH) and Table-per-Type (TPT), supported by LinqConnect starting from version 2.00. For a better understanding of these inheritance types, we will use the Model First approach when the object model is developed first and after that the database scheme is generated.

To develop an object model, the Entity Developer tool will be used.

Our tests are performed on the following object model:

We have a hierarchy of three entity classes: the base class Gadget and its descendants – MobilePhone and Netbook.
(more…)

Provide your feedback on LinqConnect at UserVoice!

Go to devart.uservoice.com and share your ideas about new features you want to see in LinqConnect. There you may vote for features that are already in our roadmap, and they will have higher priority in our plans, or you may suggest your own features, and if they will get enough votes, we will include them to the roadmap. Your opinion helps us to make LinqConnect better and more useful for you.
LinqConnect at UserVoice

 

We have already started implementing of the following features:

(more…)

LinqConnect and ORMBattle.NET

ORMBattle.NET has recently updated their results of testing various .NET Framework ORMs and added LinqConnect to their lists. LinqConnect demonstrates one of the best results it their tests.

ORMBattle.NET is an open-source project for ORM comparison, supported by a development team from X-tensive.com. This project contains a set of tests for feature-oriented comparison, but it is more focused on the performance tests (CRUD operation performance, object materialization, etc.).

LinqConnect development team agrees with most of the tests. The results on the whole are reliable enough to consider them when choosing ORM framework.

We already are studying the situations where LinqConnect showed bad results and working on performance improvement.