为什么任何带有EdmEntityTypeAttribute的类都会导致运行时错误,即使它没有被使用?

时间:2011-06-01 22:15:11

标签: c# entity-framework ado.net entity entity-relationship

我创建了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();

但是,如果我在table1类的 DIFFERENT 命名空间中添加属性为[EdmEntityTypeAttribute] ANY 类,但在 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 Entity引擎在执行代码之前会通过 ASSEMBLY 中具有[EdmEntityTypeAttribute]属性的所有类,并检查这些类是否正确构造,即使它们不是用过的。我对吗?如果我这样做,为什么会这样呢?

谢谢

0 个答案:

没有答案