簡體   English   中英

將Linq結果返回到數據集-GetCommand不是屬性

[英]Return Linq result to a dataset - GetCommand Is Not a Property

我想提到的第一個解決方案- http://forums.asp.net/t/1320587.aspx ,對LINQ結果返回到數據集。 但是我沒有在'mdb'之后得到'GetCommand'屬性。 該錯誤表明MedianEntities不包含“ GetCommand”的定義。 您是否缺少大會。

我還應該包括什么來解決此問題。

public DataSet GetAllRecords()
  {
    DataSet ds = new DataSet();
    MEDIANEntities mdb = new MEDIANEntities();
    var query = (from j in mdb.tblCountries 
                 orderby j.CountryName ascending select j);
    SqlCommand cmd = (SqlCommand)mdb.GetCommand(query);     //error here
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    return ds;
  }

使用.Netframework 4.0和實體模型

DataContext和GetCommand用於LINQ-To-SQL,您想使用LINQ-To-Entity。

存在多個問題,您的實體MEDIANEntities可能是DbContext,GetCommand在DataContext類上。

另一個問題是您的“查詢”不是IQueryable,需要從查詢中刪除.AsEnumerable()。

您可以在query上使用CopyToDataTable<DataRow>()來完成所需的操作。 http://msdn.microsoft.com/en-us/library/bb396189.aspx

當您將DataContext(linq-to-sql)與(linq-to-entity)混合使用時,另一種方法應該可行,但可能會很麻煩。 像這樣:

                    using (DataContext ctx = new DataContext(mdb.Database.Connection))
                    {
                        DataSet ds = new DataSet();
                        var query = (from j in mdb.tblCountries 
                                     orderby j.CountryName ascending
                                     select j);
                        SqlCommand cmd = (SqlCommand)ctx.GetCommand(query);
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds);
                        return ds;
                    }

有關GetCommand的更多信息:

DataContext.GetCommand

命名空間:System.Data.Linq

程序集:System.Data.Linq(在System.Data.Linq.dll中)

http://msdn.microsoft.com/zh-CN/library/system.data.linq.datacontext.getcommand.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM