未找到复杂类型

时间:2015-12-18 20:05:03

标签: c# entity-framework tsql

所以,我在EF ORM中加入了一个存储过程。我通过Import Function将SP添加到EF。我选择从SP列Complex Type创建FolderColumn。选择Run Custom Tool后,SP已添加到我的实体的上下文cs文件中:

    public virtual ObjectResult<FolderColumn> GetColumnFolderModel(Nullable<long> caseid, Nullable<long> folderid, Nullable<long> userid)
    {
        var caseidParameter = caseid.HasValue ?
            new ObjectParameter("caseid", caseid) :
            new ObjectParameter("caseid", typeof(long));

        var folderidParameter = folderid.HasValue ?
            new ObjectParameter("folderid", folderid) :
            new ObjectParameter("folderid", typeof(long));

        var useridParameter = userid.HasValue ?
            new ObjectParameter("userid", userid) :
            new ObjectParameter("userid", typeof(long));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<FolderColumn>("GetColumnFolderModel", caseidParameter, folderidParameter, useridParameter);
    } 

我在Context Model中看到了实体:

Complex Type is in the Context Model

使用我发现的XML编辑器编辑我的Context.edmx:

    <ComplexType Name="FolderColumn">
      <Property Type="Int64" Name="id" Nullable="false" />
      <Property Type="String" Name="Display" Nullable="false" MaxLength="256" />
      <Property Type="String" Name="Name" Nullable="false" MaxLength="256" />
      <Property Type="String" Name="Width" Nullable="true" MaxLength="12" />
      <Property Type="Boolean" Name="Sortable" Nullable="true" />
      <Property Type="String" Name="Align" Nullable="true" MaxLength="48" />
      <Property Type="Boolean" Name="Hide" Nullable="true" />
    </ComplexType>

<Schema>标记下,以及我的常见实体类型。

我看不到FolderColumn中的复杂类型Context.cs。而且,更重要的是,复杂类型未映射到实体,因此我不能这样做:

BriefcaseEntities context = new BriefcaseEntities();
context.FolderColumn // <--- Not part of the context

以及对FolderColumn的任何引用

  

The type or namespace name 'FolderColumn' could not be found (are you missing a using directive or an assembly reference?)

为什么我的新复杂类型不属于我的上下文实体?

1 个答案:

答案 0 :(得分:0)

复杂类型表示结构化但未存储的内容。实体都存储在表中;复杂类型可以从SP,视图等返回。所以它是我期望看到的。