How to return DataSet in EntityFramework 4

259 Views Asked by At

I have this method that returns obj Data, but instead of that I need to return DataSet

public static Data GetData(int id)
{
    var result = new Data();
    using (var context = new MyContext(false, false)) 
    {
        var query = context.Data.Include("MyTable1").Include("MyTable2").Include("MyTable3").Where(o => o.Id == id);
        result = query.OrderBy(onc => onc.Data).FirstOrDefault();
    }
    return result;
}

I'm new to Entity Framework, any example how can I return DataSet instead of object.

1

There are 1 best solutions below

0
zey On BEST ANSWER

Add your Data object into Dataset and return it.
Here is example,

 private DataSet ConvertToDataSet(Data yourObject) 
 {
     DataTable dt = new DataTable();
     //build the columns by your fields
     dt.Columns.Add("Id", typeof(int));
     dt.Columns.Add("Name", typeof(string));

     DataRow row = dt.NewRow();
     row["Id"] = yourObject.Id;
     row["Name"] = yourObject.Name
     dt.Rows.Add(row);

     DataSet ds = new DataSet();
     ds.Tables.Add(dt);
     return ds;
  }



  public static DataSet GetData(int id)
  {
    var result = new Data();
    using (var context = new MyContext(false, false)) 
    {
        var query = context.Data.Include("MyTable1").Include("MyTable2").Include("MyTable3").Where(o => o.Id == id);
        result = query.OrderBy(onc => onc.Data).FirstOrDefault();
    }
    return ConvertToDataSet(result);
  }