有人能解释一下吗?
创建指定类型的实例的代码如下:
MethodInfo methodInfo = this._dbContext.GetType().GetMethod("CreateObject").MakeGenericMethod(instanceType);
object invokedObject = methodInfo.Invoke(this._dbContext, null);
其中_dbContext
在我的实体模型。
当我尝试创建以下类的实例时,一切都很高兴,它工作了:
public partial class User : EntityObject
{
....
}
但是当我在下面的类中尝试同样的操作时,我收到一个错误:
标识为'MyNamespace '的成员。帐户'在元数据集合中不存在。
public partial class Account : ComplexObject
{
....
}
有人可以解释为什么我能够创建一个EntityObject
的实例/对象,而不是ComplexObject
?
多谢! !
(更新) public ObjectSet<User> Users
{
get
{
if ((_Users == null))
{
_Users = base.CreateObjectSet<User>("Users");
}
return _Users;
}
}
private ObjectSet<User> _Users;
实际上有两个问题:
-
正如您更新的问题中所指出的,您的
context
不包含对Account
的引用,您需要在从上下文中请求它(使用'CreateObject'
方法)之前添加它:public ObjectSet<Account> Accounts { get { if ((_Accounts == null)) { _Accounts = base.CreateObjectSet<Account>("Accounts"); } return _Accounts; } } private ObjectSet<Account> _Accounts;
-
由于您的
Account
是ComplexType
,我认为您不能将其用作ObjectSet<>
,因为ComplexType
没有Identity
,只能用作父Entity
的一部分。