Getting Started with Entity Framework 4 – Complex Types and Entities

Complex Types make it easier to work with objects, allowing the grouping of related properties in Entities and the reuse of these groupings across Entities.

The first release of Entity Framework included Complex Type support but did not expose this capability through the Entity Data Model Designer. The good news is … it now does.

You can check out the MSDN documentation on using the ADO.NET Entity Data Model Designer with complex types:

In my earlier post on Model First I slipped in a complex type for Product.

image

Specifically I used the Refactor into New Complex Type option of the designer:

image

To take two properties of Product, Description and Price, and create a new Complex Type ProductDetails:

image

When I then went on to generate the database script, Entity Framework came up with the following physical schema to support my complex type, concatenating the property name Details with the original property names Description and Price:

image

The corresponding mapping is:

image

Nice and simple.

The other use of Complex Types is to map a Function Import to a Complex Type. This is worthy of its own post in the future – as this functionality dramatically simplifies working with stored procedures in Entity Framework 4.

This article is part of the GWB Archives. Original Author: Eric Nelson

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.