Ну, вы можете запросить метаданные в SSDL, посмотрев в SSpace или StoreItemCollection.
т.е.
var sspaceEntitySets = context.MetadataWorkspace
.GetItems<EntityContainer>(DataSpace.SSpace)
.First().BaseEntitySets.OfType<EntitySet>();
var entitySet = sspaceEntitySets.First();
var tableType = entitySet
.MetadataProperties["http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator:Type"]
.Value.ToString();
К сожалению, это не поможет вам привязать ваши классы к тому, приходят ли они из таблицы или из представления. Поскольку сущности (то есть те, против которых вы кодируете в CSpace), а не те, которые описывают формы таблицы (то есть те, которые обозначают SSpace), находятся в CSpace, и чтобы узнать, исходит ли сущность из представления или таблицы, вам потребуется чтобы иметь возможность получить доступ из CSpace EntitySet к SSpace EntitySet через сопоставление.
К сожалению, EF не предоставляет доступ к общедоступной CSSPace (т. Е. Нет способа использовать API для чтения фрагмента MSL EDMX).
Так что для этого вам придется вручную обдумать элемент MSL, возможно, используя LINQ to XML или что-то в этом роде.
Надеюсь, это поможет
Alex