Index: Data/Linq/Mapping/AttributedMetaModel.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- Data/Linq/Mapping/AttributedMetaModel.cs	(revision 1156)
+++ Data/Linq/Mapping/AttributedMetaModel.cs	(working copy)
@@ -280,8 +280,8 @@
 		/// </returns>
 		private MetaTable AddTableType(Type tableType)
 		{
-			//No need to check base types because framework implementation =
doesn't do this either
-			var tableAttribute =3D tableType.GetAttribute<TableAttribute>();
+			// Mush check base types also
+			var tableAttribute =3D =
DbLinq.Util.ReflectionUtility.GetTableAttrib(tableType);
=20
 			if (tableAttribute =3D=3D null)
 			{
Index: Util/ReflectionUtility.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- Util/ReflectionUtility.cs	(revision 1156)
+++ Util/ReflectionUtility.cs	(working copy)
@@ -25,8 +25,11 @@
 #endregion
=20
 using System;
+using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;
+using System.Data.Linq.Mapping;
+using System.Collections.Generic;
=20
 namespace DbLinq.Util
 {
@@ -147,5 +150,35 @@
         {
             return GetMemberInfo((LambdaExpression) lambdaExpression);
         }
-    }
+
+		/// <summary>
+		/// given type Products, find it's [TableAttribute] (or null)
+		/// </summary>
+		public static TableAttribute GetTableAttrib(Type t)
+		{
+			//object[] objs =3D t.GetCustomAttributes(typeof(TableAttribute), =
false);
+			foreach (Type t2 in SelfAndBaseClasses(t))
+			{
+				object[] objs =3D t2.GetCustomAttributes(typeof(TableAttribute), =
true);
+				if (objs.Length =3D=3D 0)
+					continue;
+				TableAttribute tbl =3D =
objs.OfType<TableAttribute>().FirstOrDefault();
+				return tbl;
+			}
+			return null;
+		}
+
+		/// <summary>
+		/// enumerate inheritance chain - copied from DynamicLinq
+		/// </summary>
+		static IEnumerable<Type> SelfAndBaseClasses(Type type)
+		{
+			while (type !=3D null)
+			{
+				yield return type;
+				type =3D type.BaseType;
+			}
+		}
+
+	}
 }
