为什么任何具有 EdmEntityTypeAttribute 的类即使未使用也会导致运行时错误?
我创建了 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 类所在的程序集,因此我收到运行时错误,例如:该类型没有任何关键成员。
、“指定的架构无效。
比方说我添加此类:
namespace ANY_NAMESPACE
{
[EdmEntityTypeAttribute]
public class ANY_CLASS
{
}
}
如果我什至不使用 ANY_CLASS 类,为什么会出现此类错误?
看起来 ADO.NET 实体引擎会遍历 中具有 [EdmEntityTypeAttribute]
属性的所有类ASSEMBLY 在执行代码之前检查这些类的构造是否正确,即使它们没有被使用,我是对的吗?
谢谢。
I created ADO.NET Entity Data Model. Let's say that it generated the code below:
namespace MyEntities
{
//Contexts
...
[EdmEntityTypeAttribute(NamespaceName="Entities", Name="table1")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class table1 : EntityObject{...}
}
Any manipulation on it works fine. For example
var cxt = new SPEntities();
var res = (from t in cxt.table1
select t).ToList();
But if I add ANY class with attribute [EdmEntityTypeAttribute]
within DIFFERENT namespace from table1 class, but in the SAME assembly that table1 class is located, so I get runtime errors like: The type doesn't have any key members.
, "Schema specified is not valid.
Let's say I add this class:
namespace ANY_NAMESPACE
{
[EdmEntityTypeAttribute]
public class ANY_CLASS
{
}
}
Why I get those kind errors if I even don't use ANY_CLASS class?
It looks like ADO.NET Entity engine passes through all classes with [EdmEntityTypeAttribute]
attribute in the ASSEMBLY before it execute the code and checks those classes for correct construction even if they aren't used. Am I right? If I do, why it does it?
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论