2012-02-13 48 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(); 

错误在这里。获取所选论坛通过下拉列表

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

标记传递:

<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 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'对象的集合吗? – 2012-02-13 02:03:50

回答

1

你为什么要创建新的Forum对象首先是什么?除非有充分的理由不这样做,只是做select x

+0

然后我的返回类型是什么 – ONYX 2012-02-13 01:26:50

+0

@KDM:db.Forums包含的任何类型的列表。 – 2012-02-13 01:27:34

+0

我还是不明白我要回报什么。我已经在底部更新了我的代码,请你帮我一下 – ONYX 2012-02-13 01:31:02

相关问题