0

有人可以解释以下内容:

我有以下代码创建指定类型的实例:

MethodInfo methodInfo = this._dbContext.GetType().GetMethod("CreateObject").MakeGenericMethod(instanceType);
object invokedObject = methodInfo.Invoke(this._dbContext, null);

_dbContext我的实体模型中。

当我尝试创建以下类的实例时,一切都很高兴并且可以正常工作:

public partial class User : EntityObject
{
 ....
}

但是当我在下面的课程中尝试相同的时候 - 我收到一个错误:

元数据集合中不存在身份为“MyNamespace.Account”的成员。

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;
4

1 回答 1

0

其实有2个问题:

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

    public ObjectSet<Account> Accounts
    {
        get
        {
            if ((_Accounts == null))
            {
                _Accounts = base.CreateObjectSet<Account>("Accounts");
            }
            return _Accounts;
        }
    }
    
    private ObjectSet<Account> _Accounts;
    
  2. 由于 your Accountis aComplexType我认为您不能将其用作 an ObjectSet<>,因为ComplexType没有 anIdentity并且只能用作 parent 的一部分Entity

于 2013-05-14T09:44:33.187 回答