2

我有以下无意义的(在我看来)错误消息:

System.NotSupportedException 未被用户代码处理

Message='Company.Data.DataProvider.Schema.DerivedType' 不是类型过滤操作的有效元数据类型。类型过滤仅对实体类型和复杂类型有效。

我的数据库中有以下表格:

BaseType
ObjectID uniqueidentifier
.. other unrelated columns

DerivedType
ObjectID unqueidentifier
UserID unqueidentifier
.. other unrelated columns

我使用继承的实体框架使用了以下类:

BaseType
Guid ObjectID 
.. other unrelated properties

DerivedType : BaseType
Guid UserID 
.. other unrelated properties

我的部分 SchemaContext 看起来像:

public partial class SchemaContext
{
  public IQueryable<DerivedType> DerivedTypes
  {
    get { return this.BaseType.OfType<DerivedType>()
  }
}

我有一个看起来像这样的方法:

result = this._dbContexts.SchemaContext.DerivedTypes
  .Include(i => i.RatingType)
  .Include(i => i.ObjectVersion)
  .Where(dt => objectIDs.Any(id => 
                 dt.ObjectVersion.
                   .MatchingObjects
                   .Select(s => s.ObjectID).Contains(id))
               && dt.UserID == userID)
  .ToList();

我相信这.OfType<>是抛出错误,我不能使用基本类型,因为我需要过滤用户 ID。关于解决这个问题的任何建议?

4

1 回答 1

2

我相信此错误消息表明您的派生类型未在实体模型中正确定义。如果使用操作实体对象类型名称的 POCO/Context 生成器,请验证对象名称是否匹配。

于 2012-10-10T03:10:15.600 回答