Почему любой класс с атрибутом EdmEntityTypeAttribute вызывает ошибку во время выполнения, даже если он не используется?

#c# #entity-framework #ado.net #entity #entity-relationship

#c# #entity-framework #ado.net #сущность #сущность-отношение

Вопрос:

Я создал ADO.NET Модель данных объекта. Допустим, что он сгенерировал приведенный ниже код:

 namespace MyEntities
{
       //Contexts
       ...
       [EdmEntityTypeAttribute(NamespaceName="Entities", Name="table1")]
       [Serializable()]
       [DataContractAttribute(IsReference=true)]
       public partial class table1 : EntityObject{...}
}
  

Любые манипуляции с ним работают нормально. Например

 var cxt = new SPEntities();
var res = (from t in cxt.table1
           select t).ToList();
  

Но если я добавлю ЛЮБОЙ класс с атрибутом [EdmEntityTypeAttribute] в пространстве имен, ОТЛИЧНОМ от класса table1, но в ТОЙ же сборке, что и класс table1, я получу ошибки во время выполнения, такие как: The type doesn't have any key members. , "Schema specified is not valid. Допустим, я добавляю этот класс:

  namespace ANY_NAMESPACE
    {
        [EdmEntityTypeAttribute]
        public class ANY_CLASS
        {
        }
    }
  

Почему я получаю ошибки такого рода, если я даже не использую класс ANY_CLASS?

Это выглядит как ADO.NET Entity engine просматривает все классы с [EdmEntityTypeAttribute] атрибутом в СБОРКЕ перед выполнением кода и проверяет правильность построения этих классов, даже если они не используются. Я прав? Если я использую, почему он это делает?

Спасибо