我创建了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]
属性的所有类,并检查这些类是否正确构造,即使它们不是用过的。我对吗?如果我这样做,为什么会这样呢?
谢谢