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