ORM Solutions

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.

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:


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.

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:


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.

Enumeration Support


We keep receiving requests about enumeration support in Entity Developer from our customers. That’s why we plan to implement this functionality in the second half of 2010.

In this article we describe the functionality concerning enumeration support we plan to add. It is only a draft and these features are a subject to change. It depends on the customer suggestions in many respects, so if you have any suggestions or requirements concerning this functionality, please write them as comments to this article or in any other way comfortable for you.

Entity Framework and IdeaBlade

Our active user, Simon Kingaby, in his own blog has described experience of the web-based enterprise applications development by help of the following technologies: Devart dotConnect for Oracle, Entity Developer, Oracle 11 Database, Entity Framework, IdeaBlade DevForce, Microsoft Silverlight 3, Prism 2, and Unity.

You can view these articles by the following links:
IdeaBlade DevForce – Model Setup Walk-through – Background
IdeaBlade DevForce – Model Setup Walk-through – Step 1: The Entity Framework Project

Because of the increasing popularity of IdeaBlade among our users we plan to consider ways to improve its support. At first, we will implement a complete support of the custom attributes. Currently the serialization/deserialization of the conceptual model elements is provided only for part of them. Serialization of the conceptual model elements will be supported completely and EntityDeveloper will show and edit them in the next versions.

These changes will be useful for the users of the third-party tools which save additional information to the XML model as custom attributes. Also it will be useful for users who want to customize code generation – they can use attribute values in the code generation templates.

PostGIS and Entity Framework


In this article we consider how to build Entity Framework models using PostGIS objects in Entity Developer. PostGIS is a popular spatial extension for PostgreSQL that gives one an opportunity to work with geographic objects. To create and use such models we will:


Provide your feedback on Entity Developer at UserVoice!

Go to devart.uservoice.com and share your ideas about new features you want to see in Entity Developer. 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 Entity Developer better and more useful for you.
Entity Developer at UserVoice

Currently Entity Developer roadmap includes the following features:

Working with transactions in Entity Framework and LINQ to SQL

Entity Framework

In this article we consider a short description of the Entity Framework and LINQ to SQL transactional models. There are also some simple code listings illustrating different aspects of the transactional model.

A transaction is a series of operations performed as a single unit of work. Entity Framework transactions are a part of its internal architecture. The SaveChanges method operates within a transaction and saves results of the work. It is designed to ensure data integrity. The common reason of integrity problems is a Concurrency violation, which can be raised during the saving process. Concurrency violation occurs an OptimisticConcurrencyException in this case. To resolve this conflict you have to call the Refresh method with the StoreWins or ClientWins value, and after that call SaveChanges again. But be aware, that the Refresh with the ClientWins option can be a source of problem too. It rewrites all changes made to the data after context query execution.