Return Custom Object from Entity framework and assign to Object Data Source

前端 未结 3 1225
暗喜
暗喜 2021-01-18 02:02

I need some guidance with an issue, I am using Entity Framework 4.0, I have a DAL and BLL and am binding to ObjectDataSource on the page.

I had to write a stored pr

3条回答
  •  一个人的身影
    2021-01-18 02:38

    If you want to present the results in say a GridView then actually you're nearly there - with the binding and AutoGenerate columns, because ObjectQuery is an IEnumerable. I'm using ObjectQuery but you can interchange this with ExecuteStoreQuery - as they both return an IEnumerable

    string myQuery = @"SELECT p.Name,p.VatNumber FROM MyEntities.Users as p";
    
    ProductList.ItemsSource = new ObjectQuery(myQuery, context);
    

    in the XAML

    
    

    and you'll see the columns that are returned directly in the UI.

    If you're not using WPF and you want a List of your elements then all you need to do is:

    var myList =  new ObjectQuery(myQuery, context).ToList();
    

    or to take your original method it would be:

    var myList = context.ExecuteStoreQuery("exec spGetProductsByGroup @ProductID={0}", product_id);
    

    If you do need to iterate over the fields; then the following will do the trick:

    foreach (var rec in context.ExecuteStoreQuery("exec spGetProductsByGroup @ProductID={0}", product_id))
        {
        for (var ri = 0; ri < rec.FieldCount;ri++)
        {
            Console.WriteLine(rec.GetDataTypeName(ri)
                              +"   " + rec.GetName(ri)
                              +" = " + rec.GetValue(ri));
            }
        }
    

    One of the many beauties of LINQ and Generics is that most of the time you can simply not worry too much about the actual datatypes until you eventually get to where you need to process them.

提交回复
热议问题