ObjectContext.CreateObject<T>: Create ComplexObject



有人能解释一下吗?

创建指定类型的实例的代码如下:

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;

实际上有两个问题:

  1. 正如您更新的问题中所指出的,您的context不包含对Account的引用,您需要在从上下文中请求它(使用'CreateObject'方法)之前添加它:

    public ObjectSet<Account> Accounts
    {
        get
        {
            if ((_Accounts == null))
            {
                _Accounts = base.CreateObjectSet<Account>("Accounts");
            }
            return _Accounts;
        }
    }
    private ObjectSet<Account> _Accounts;
    
  2. 由于您的AccountComplexType,我认为您不能将其用作ObjectSet<>,因为ComplexType没有Identity,只能用作父Entity的一部分。

相关内容

  • 没有找到相关文章