2012-02-13 3 views
0

私のGetForumsByForumGroupIDメソッドでこのエラーが発生し、LinqステートメントのForumオブジェクトが選択されます。私は前にこのエラーがなかったので、なぜ私はそれがあるのか​​わかりません。私はForumオブジェクトを必要としません。私はTitleとForumIDのプロパティが必要ですが、私は匿名オブジェクトを返す方法を知らない。LINQ to Entitiesではパラメータのないコンストラクタとイニシャライザのみがサポートされています

var forums = (from x in db.Forums select new {ForumID = x.ForumID, Title = x.Title}).ToList(); 

ここでのエラー。更新

<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" AutoPostBack="true" 
    DataSourceID="ObjectDataSource1" DataTextField="Key" 
    DataValueField="Value"> 

</asp:DropDownList> 
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
    SelectMethod="GetDisplayForumGroups" TypeName="CMS.Framework.Forums"> 
</asp:ObjectDataSource> 


<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
    DataSourceID="ObjectDataSource2"> 
    <Columns> 
     <asp:BoundField DataField="ForumID" HeaderText="ForumID" 
      SortExpression="ForumID" /> 
     <asp:BoundField DataField="AddedBy" HeaderText="AddedBy" 
      SortExpression="AddedBy" /> 
     <asp:BoundField DataField="AddedDate" HeaderText="AddedDate" 
      SortExpression="AddedDate" /> 
     <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> 
     <asp:BoundField DataField="Description" HeaderText="Description" 
      SortExpression="Description" /> 
     <asp:BoundField DataField="ParentID" HeaderText="ParentID" 
      SortExpression="ParentID" /> 
     <asp:BoundField DataField="Importance" HeaderText="Importance" 
      SortExpression="Importance" /> 
     <asp:CheckBoxField DataField="Moderated" HeaderText="Moderated" 
      SortExpression="Moderated" /> 
     <asp:BoundField DataField="Url" HeaderText="Url" SortExpression="Url" /> 
     <asp:BoundField DataField="ImageUrl" HeaderText="ImageUrl" 
      SortExpression="ImageUrl" /> 
     <asp:BoundField DataField="UpdatedBy" HeaderText="UpdatedBy" 
      SortExpression="UpdatedBy" /> 
     <asp:BoundField DataField="UpdatedDate" HeaderText="UpdatedDate" 
      SortExpression="UpdatedDate" /> 
     <asp:CheckBoxField DataField="Active" HeaderText="Active" 
      SortExpression="Active" /> 
     <asp:BoundField DataField="ForumGroup" HeaderText="ForumGroup" 
      SortExpression="ForumGroup" /> 
     <asp:BoundField DataField="ThreadCount" HeaderText="ThreadCount" 
      SortExpression="ThreadCount" /> 
     <asp:BoundField DataField="LastPostBy" HeaderText="LastPostBy" 
      SortExpression="LastPostBy" /> 
     <asp:BoundField DataField="LastPostDate" HeaderText="LastPostDate" 
      SortExpression="LastPostDate" /> 
     <asp:BoundField DataField="LastPostTitle" HeaderText="LastPostTitle" 
      SortExpression="LastPostTitle" /> 
     <asp:BoundField DataField="LastPostID" HeaderText="LastPostID" 
      SortExpression="LastPostID" /> 
     <asp:BoundField DataField="ThreadID" HeaderText="ThreadID" 
      SortExpression="ThreadID" /> 
     <asp:BoundField DataField="ThreadTitle" HeaderText="ThreadTitle" 
      SortExpression="ThreadTitle" /> 
     <asp:BoundField DataField="ReplyCount" HeaderText="ReplyCount" 
      SortExpression="ReplyCount" /> 
    </Columns> 
</asp:GridView> 

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
    SelectMethod="GetForumsByForumGroupID" TypeName="CMS.Framework.Forums"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="DropDownList1" PropertyName="SelectedValue" 
     Type="Int32" Name="ForumGroupID" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

:選択したフォーラムは、ドロップダウンリスト

public List<Forum> GetForumsByForumGroupID(int ForumGroupID) 
    { 
     using (CMSEntities db = new CMSEntities()) 
     { 
      List<Forum> forums = (from x in db.Forums where x.ParentID == ForumGroupID select 
           new Forum(x.ForumID, "",DateTime.Now, x.Title, "", 0, x.Importance, false, "", 
            "", "", DateTime.Now, true, "", 0, "", DateTime.Now, "", 0, 0, "", 0)).ToList<Forum>(); 
      return forums; 
     } 
    } 

マークアップによって渡さ取得

public GetForumsByForumGroupID(int ForumGroupID) 
    { 
     using (CMSEntities db = new CMSEntities()) 
     { 
      var forums = (from x in db.Forums where x.ParentID == ForumGroupID select 
           x).ToList(); 
      return forums; 
     } 
    } 

いずれか

public List<Forum> GetForumsByForumGroupID(int ForumGroupID) 
    { 
     using (CMSEntities db = new CMSEntities()) 
     { 
      List<Forum> formus = (from x in db.Forums where x.ParentID == ForumGroupID select 
           x).ToList<Forum>(); 
      return forums; 
     } 
    } 
+0

'db.Forums'は' Forum'オブジェクトの集合ですか? –

答えて

1

はなぜあなたが作成しているこれを行うことはできません新規Forum objec最初はどこですか?そうしないと良い理由がない限り、ただselect xを実行してください。

+0

次に、返品タイプは何ですか – ONYX

+0

@KDM: 'db.Forums'タイプのリストです。 –

+0

私はまだ私が何を返すのか分からない。私のコードを最後に更新しました – ONYX

関連する問題