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

Я создал ADO.NET Entity Data Model. Допустим, он сгенерировал код ниже:

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, но в сборке SAME этот класс 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 проходит через все классы с атрибутом [EdmEntityTypeAttribute] в ASSEMBLY перед тем, как выполнить код и проверяет эти классы на правильность построения, даже если они не используются. Я прав? Если я делаю, то почему это делает?

Спасибо

...