2015-07-02 1 views
2

Мне нужно получить тип объекта CLR от EntityType.FullName, но это неверно.Почему EntityType возвращает пространство имен контекста, но не сущности?

Наши модели размещены в пространстве имен, отличном от контекстного.

Когда я получаю EntityType.FullName, он возвращает <ContextNamespace>.<EntityName>, но не <EntityNamespace>.<EntityName>. Это особенность? Что я делаю не так?

ответ

0

Как обычно ... неправильный предположения. Типы CLR доступны в DataSpace.OSpace. И EntityType от CSpace содержит, по-видимому, «виртуальное» пространство имен, несколько не относящееся к понятию CLR.

Rowan написал хорошее post о получении метаданных для данного типа.

Похоже, что имя - это единственное, что связывает тип CLR с EntityType.
Я попытался добавить новый DbSet с сущностью, исходящей из разных пространств имен, но имеющей одно и то же имя класса. EF просто бросил InvalidOperationException.