Search code examples
c#entity-framework-6

Entity Framework to List without specific Column


I'm actually using EF and very new to it. I have a EDMX-Model from Database. I have to get a List of Entities, but in this Table is Binary-Column. I want my Object-List from that Table without the Binary Data.

My Entity-Objekt looks like:

public partial class bons
{
    public int id { get; set; }
    public System.DateTime zeitstempel { get; set; }
    public byte[] bonBinaer { get; set; }
    public Nullable<int> tisch_nr { get; set; }
    public bool abgearbeitet { get; set; }
    public int kunde_id { get; set; }
    public string hash { get; set; }
    public string dateiname { get; set; }
    public string tisch_name { get; set; }
    public int gang { get; set; }
    public decimal brutto { get; set; }
    public Nullable<System.DateTime> zeitstempelAbgearbeitet { get; set; }
    public Nullable<int> positionenAnzahl { get; set; }
    public bool manuell { get; set; }
}

And I#m getting the List like:

internal static List<bons> holeBongListeNichtAbgearbeitetRestaurant(int kunde_id)
{
    List<bons> rückgabe = new List<bons>();
    using (bonsEntities context = new bonsEntities())
    {
        rückgabe = context.bons.Where(x => x.kunde_id == kunde_id && x.abgearbeitet == false).OrderBy(x => x.zeitstempel).ToList();
    }
    return rückgabe;
}

Can someone help how to get the List without the 'byte[] bonBinaer'?


Solution

  • Hi you can use autoMapper with EF extension

    like: https://docs.automapper.org/en/stable/Queryable-Extensions.html

    or if you prefer you can do by yourself with a Select() method like:

        using (bonsEntities context = new bonsEntities())
                {
                   rückgabe = context.bons.Where(x => x.kunde_id == kunde_id && x.abgearbeitet == false).OrderBy(x => x.zeitstempel).Select(xx=> new {
         id = xx.id
         //and all you props
         }).ToList().Select(yy=> new bons{
         id=yy.id
     //and back with other props
         }).ToList();
    
    
            }