<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx</link><description>The information in this post is out of date. 
 
 Visit msdn.com/data/ef for the latest information on current and past releases of EF. 
 
 For TPT Inheritance see http://msdn.com/data/jj618293 
 
 For TPH Inheritance see http://msdn.com/data/jj618292</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10115427</link><pubDate>Thu, 13 Jan 2011 18:04:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10115427</guid><dc:creator>Kim</dc:creator><description>&lt;p&gt;Hi. &lt;/p&gt;
&lt;p&gt;I am running into a problem using Insert stored procedures with TPT inheritance. &amp;nbsp;I am trying to add a new row into an inherited class. &amp;nbsp;When I dont have stored procedures in place, entity framework correctly adds the record to the base class then to the inherited class. &amp;nbsp;However, as soon as I map to stored procedures, Entity Framework gets confused and tries to add the inherited class before the base class, so it results in a foreign key error. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is there a way to solve this problem so that I can add rows to inherited classes using stored procedures? &lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10115427" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10093209</link><pubDate>Thu, 18 Nov 2010 14:58:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10093209</guid><dc:creator>Graeme Hall</dc:creator><description>&lt;p&gt;Hi Pedro&lt;/p&gt;
&lt;p&gt;How do you implement TPC? This is the kind of strategy we would like to employ but I don&amp;#39;t see a description of how you would model it anywhere. Do you have a sample project you could make available that illustrates how we would generate entity objects and db tables from a conceptual model?&lt;/p&gt;
&lt;p&gt;thanks&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10093209" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10086911</link><pubDate>Fri, 05 Nov 2010 21:14:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10086911</guid><dc:creator>Eli.M</dc:creator><description>&lt;p&gt;@Riguinel Sant&amp;#39;Anna&lt;/p&gt;
&lt;p&gt;Realize that using a bit mask (your Kind | 2 = 2) where clause against a table in SQL will result in a table scan even if you index the column.&lt;/p&gt;
&lt;p&gt;Alternatively from both of your designs, I&amp;#39;d consider creating an ArtistKind Entity, and add a List&amp;lt;ArtistKind&amp;gt; property to your Artist Entity... EF will generate 3 tables, your artist table, the artistkind table and the relationship table between those 2... &amp;nbsp;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10086911" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10085217</link><pubDate>Wed, 03 Nov 2010 03:16:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10085217</guid><dc:creator>Riguinel Sant'Anna</dc:creator><description>&lt;p&gt;Hi Pedro,&lt;/p&gt;
&lt;p&gt;Great post, but let me ask you about one different scenario:&lt;/p&gt;
&lt;p&gt;Given one table called Artists, that have some properties about artists (like name, minibio, etc) and a byte field that bits are used to determine the kind of artist, with values like:&lt;/p&gt;
&lt;p&gt;1 - Singer&lt;/p&gt;
&lt;p&gt;2 - Actor&lt;/p&gt;
&lt;p&gt;4 - Composer&lt;/p&gt;
&lt;p&gt;8 - Musician&lt;/p&gt;
&lt;p&gt;16 - Director&lt;/p&gt;
&lt;p&gt;Note that the same artist can be just of one kind or pertain to more than one. &amp;nbsp;Let&amp;#39;s see an example:&lt;/p&gt;
&lt;p&gt;+-------------------------------------------------+&lt;/p&gt;
&lt;p&gt;| Table: Artist &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+--------+&lt;/p&gt;
&lt;p&gt;| Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Kind &amp;nbsp; |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+--------+&lt;/p&gt;
&lt;p&gt;| Al Pacino &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; (Actor)&lt;/p&gt;
&lt;p&gt;+---------------------------------------+--------+&lt;/p&gt;
&lt;p&gt;| Mel Gibson &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| 18 &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; (Actor and Director)&lt;/p&gt;
&lt;p&gt;+---------------------------------------+--------+&lt;/p&gt;
&lt;p&gt;| Dave Matthews &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | 15 &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; (Actor, Singer, Composer and Musician)&lt;/p&gt;
&lt;p&gt;+---------------------------------------+--------+&lt;/p&gt;
&lt;p&gt;Now, I&amp;#39;m able to do TPH using updatable views with stored procedures (for CRUD). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I also know that it&amp;#39;s not possible (for me at least!) do this using conditional mapping since I can&amp;#39;t use an expression with bitwise OR, like &amp;quot;(Kind | 2) = 2&amp;quot; in the condition.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve thought, altenativelly, that change the table structure by splitting de field Kind, into something like:&lt;/p&gt;
&lt;p&gt;+-------------------------------------------------------------------------------------------------------+&lt;/p&gt;
&lt;p&gt;| Table: Artist &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+-------+---------+----------------+-------------+----------+&lt;/p&gt;
&lt;p&gt;| Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Actor | Singer | Composer | Musician | Director |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+-------+---------+----------------+-------------+----------+&lt;/p&gt;
&lt;p&gt;| Al Pacino &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; | &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+-------+---------+----------------+-------------+----------+&lt;/p&gt;
&lt;p&gt;| Mel Gibson &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; | &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+-------+---------+----------------+-------------+----------+&lt;/p&gt;
&lt;p&gt;| Dave Matthews &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; | &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;
&lt;p&gt;+---------------------------------------+-------+---------+----------------+-------------+----------+&lt;/p&gt;
&lt;p&gt;Could work, but doing this, although I can create TPH using the fields in the conditional mapping, the EF (obviously) gives me an error stating that the derived entities (Actor, Singer, etc) are &lt;/p&gt;
&lt;p&gt;being mapped to the same rows in the table Artist.&lt;/p&gt;
&lt;p&gt;My question is, are there other ways to do that ?&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10085217" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10082471</link><pubDate>Thu, 28 Oct 2010 21:40:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10082471</guid><dc:creator>Pedro Ardila - MSFT</dc:creator><description>&lt;p&gt;Thanks Vitor.&lt;/p&gt;
&lt;p&gt;I will get someone to have a look at the code sample from Connect.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Pedro&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10082471" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10081795</link><pubDate>Wed, 27 Oct 2010 22:51:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10081795</guid><dc:creator>Vitor Castro</dc:creator><description>&lt;p&gt;Hi Pedro,&lt;/p&gt;
&lt;p&gt;Thanks for your reply, I do have a complete simple solution with an edmx that shows the behavior I&amp;#39;m getting, where can I send you this file?&lt;/p&gt;
&lt;p&gt;You can browse to &lt;a rel="nofollow" target="_new" href="http://connect.microsoft.com/VisualStudio/feedback/details/597967/table-per-hierarchy-tph-limitation-in-entity-framework"&gt;connect.microsoft.com/.../table-per-hierarchy-tph-limitation-in-entity-framework&lt;/a&gt; where I posted both the description of the problem and the file I mentioned.&lt;/p&gt;
&lt;p&gt;Vítor&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10081795" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10081735</link><pubDate>Wed, 27 Oct 2010 20:41:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10081735</guid><dc:creator>Pedro Ardila - MSFT</dc:creator><description>&lt;p&gt;KristoferA,&lt;/p&gt;
&lt;p&gt;I actually ran into your blog post yesterday while doing some reading. Way cool!&lt;/p&gt;
&lt;p&gt;Vitor,&lt;/p&gt;
&lt;p&gt;I just tried setting up this inheritance by adding a new Entity called TTBikeC, changing TTBike to abstract, and creating an inheritance relationship between TTBikeC and TTBike. Everything worked fine.&lt;/p&gt;
&lt;p&gt;Can you send your EDMX and a description of the errors you are getting? I will make sure we troubleshoot it.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Pedro&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10081735" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10081370</link><pubDate>Wed, 27 Oct 2010 07:00:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10081370</guid><dc:creator>Vitor Castro</dc:creator><description>&lt;p&gt;Hello Pedo,&lt;/p&gt;
&lt;p&gt;About a month ago I posted this same question on Connect but I never got any good feedback on this, maybe you can shed some light into this mather.&lt;/p&gt;
&lt;p&gt;I have a scenario where I have a base abstract entity from which two types derive. One of these types is concrete while the other is abstract. From this second abstract type another concrete type is derived leaving me with this structure:&lt;/p&gt;
&lt;p&gt;AbsT1&lt;/p&gt;
&lt;p&gt;|--- ConcT1&lt;/p&gt;
&lt;p&gt;|--- AbsT2&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |--- ConcT2&lt;/p&gt;
&lt;p&gt;This conceptual model is then mapped to a single table in the storage model (TPH). This table has a column to identify the type of record being stored.&lt;/p&gt;
&lt;p&gt;In these mappings, conditions are added to both concrete types to get this column fixed values for each case.&lt;/p&gt;
&lt;p&gt;Under this condition I always get mapping errors stating that ConcT1 and ConcT2 are mapped to the same rows in the table which in my oppinion shouldn&amp;#39;t happen.&lt;/p&gt;
&lt;p&gt;Additionally if I derive ConcT1 from AbsT2 instead, keeping everything else the same, all mapping errors are gone and everything works as expected. Another way of making things &amp;#39;work&amp;#39; is to make both abstract types concrete instead.&lt;/p&gt;
&lt;p&gt;Thanks in advance,&lt;/p&gt;
&lt;p&gt;Vítor Castro&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10081370" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10081300</link><pubDate>Wed, 27 Oct 2010 02:43:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10081300</guid><dc:creator>KristoferA</dc:creator><description>&lt;p&gt;Hi Pedro,&lt;/p&gt;
&lt;p&gt;On a semi-related note, I have a tool for EFv4 that makes it easy to switch between TPT/TPH/TPC in model-first scenarios. I blogged about it here: &lt;a rel="nofollow" target="_new" href="http://huagati.blogspot.com/2010/10/mixing-inheritance-strategies-in-entity.html"&gt;huagati.blogspot.com/.../mixing-inheritance-strategies-in-entity.html&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10081300" width="1" height="1"&gt;</description></item><item><title>re: Inheritance Mapping: A Walkthrough Guide for Beginners</title><link>http://blogs.msdn.com/b/adonet/archive/2010/10/25/inheritance-mapping-a-walkthrough-guide-for-beginners.aspx#10081289</link><pubDate>Wed, 27 Oct 2010 01:59:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10081289</guid><dc:creator>Pedro Ardila - MSFT</dc:creator><description>&lt;p&gt;Thank you for reading Paul.&lt;/p&gt;
&lt;p&gt;As you point out, ORMs help abstract the data storage from the code. &amp;nbsp;This can mean a number of things for different scenarios depending on the underlying requirements. &amp;nbsp;Some applications are all about performance; other applications need to be fully extensible; others heavily rely on the ability to run ad-hoc queries. &amp;nbsp;A developer should pick an inheritance strategy based on their application&amp;#39;s needs.&lt;/p&gt;
&lt;p&gt;TPT is best for extensibility scenarios. &amp;nbsp;Let&amp;#39;s say we add a &amp;quot;FullSusMountainBike&amp;quot; which inherits from MountainBike. &amp;nbsp;Using TPT, all we have to do is create a new entity and set up the inheritance between MountainBike and FullSusMountainBike. &amp;nbsp;Using TPH, we would have to add a new column to the database, which is more disruptive than adding another table.&lt;/p&gt;
&lt;p&gt;TPC is great for accessing a concrete object&amp;#39;s data. &amp;nbsp;For instance, if we are only querying for TTBikes, we will get great query performance as all of the data needed for our query is on the same table. &amp;nbsp;This is key if one of your main scenario is the creation of ad-hoc reports.&lt;/p&gt;
&lt;p&gt;The example you describe -where FullSusMountainBike inherits from MountainBike- is actually a combination of TPC and TPT. &amp;nbsp;The ending result on the database will be a new table for FullSusMountainBike which points back to MountainBike. &amp;nbsp;The model will be able to handle this strategy just fine. &amp;nbsp;However, be aware that the same performance limitations that apply to my original TPT example will apply here.&lt;/p&gt;
&lt;p&gt;Hope that helps,&lt;/p&gt;
&lt;p&gt;Pedro Ardila &amp;nbsp;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10081289" width="1" height="1"&gt;</description></item></channel></rss>