[英]Equivalent of GetCommand() function of (Linq to Sql) in (Linq to Entity)
[英]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.