我创建了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();
但是,如果我在表1类的Differentique命名空间中添加了属性为[EdmEntityTypeAttribute]
的ANY类,但在表1类别所在的1SAME程序集中,则会出现运行时错误,如:该类型没有任何键成员
,“指定的架构无效。
假设我添加了这个类:
namespace ANY_NAMESPACE
{
[EdmEntityTypeAttribute]
public class ANY_CLASS
{
}
}
如果我甚至不使用ANY_CLASS类,为什么会出现这种错误?
看起来ADO.NET实体引擎在执行代码之前会遍历ASSEMBLY中具有[EdmEntityTypeAttribute]
属性的所有类,并检查这些类的构造是否正确,即使它们没有被使用。我说得对吗?如果我这么做了,它为什么这么做?
非常感谢。