Entity framework SingleOrDefault foutmelding

Status
Niet open voor verdere reacties.

ido435

Gebruiker
Lid geworden
10 nov 2010
Berichten
674
Hallo,

ik zit met een probleem in mijn code om een query uit de database te halen.
Deze error krijg ik:

Error CS1061 'object' does not contain a definition for 'SingleOrDefault' and no extension method 'SingleOrDefault' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?) klassen app C:\Users\Student\Desktop\oude klassenapp\klassen app\Form1.cs 60 Active

mijn code loop op dit stukje vast:
Code:
  Resultaat restultaat = dbc.Resultaaten().SingleOrDefault(C => C.Crebo == textBox12.Text);
en dit is de code (ik weet dat de code niet 100% duidelijk is)
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace klassen_app
{
    public partial class Form1 : Form
    {

        EntityVoorbeeld dbc = new EntityVoorbeeld();
        public Form1()
        {
            InitializeComponent();
            //dbc.VakToegevoegd += dbc_VakToegevoegd;
            Student leerling = new Student();
            Lesgroep lesgroep = new Lesgroep();
            Resultaat resultaat = new Resultaat();
                }

        void dbc_VakToegevoegd(object sender, EventArgs e)
        {
            Refresh_list_leerlingen();
        }
        string studentnr = "";
        string klas = "";
        string jaar = "";
       public string naam = "";

        private void button1_Click(object sender, EventArgs e)
        {
               
            //sql connection for personal data
            Student deze = dbc.Studenten().SingleOrDefault(C => C.Roepnaam == textBox1.Text);
            //int crebo = deze.Lesgroep.Last().Opleiding.Crebo;
            //personal data
            if (deze != null)
            {
                textBox3.Text = deze.Roepnaam;
                textBox13.Text = deze.Roepnaam;
                textBox4.Text = deze.voegsel;
                textBox5.Text = deze.Achternaam;
                textBox6.Text = deze.Geboortedatum.ToString();
                textBox7.Text = deze.Adres;
                textBox8.Text = deze.Postcode;
                textBox9.Text = deze.Woonplaats;
                textBox10.Text = deze.Email;
                textBox11.Text = deze.Telefoon;
                textBox12.Text = deze.Mobiel;
                textBox12.Text = deze.StudentCode;
                textBox17.Text = deze.StudentCode;
                // string for search about studendcode
                studentnr = deze.StudentCode;
            
                 Resultaat restultaat = dbc.Resultaaten().SingleOrDefault(C => C.Crebo == textBox12.Text);
                if (deze != null)
                {

                }
                var crebo = textBox15.Text;
                    Lesgroep lesgroep = dbc.Lesgroepen().OrderByDescending(L => L.Schooljaar).FirstOrDefault(L => L.Crebo == crebo);
                if (lesgroep != null)
                {
                    textBox14.Text = lesgroep.Leerjaar.ToString();
                    textBox15.Text = lesgroep.Naam;
                    textBox16.Text = lesgroep.Schooljaar.ToString();
                    textBox23.Text = lesgroep.Mentor ;
                }
                //opleiding eisen crebo
               /*  Opleiding opleiding = dbc.Opleidingen().SingleOrDefault(L => L. == /* variable control );
                if (opleiding != null)
                {
                
                    //textBox18.Text =
                } */
            }
        }

       
        void vb_StudentToegevoegd(object sender, EventArgs e)
        {
            Refresh_list_leerlingen();
        }

        private void Refresh_list_leerlingen()
        {
            Lesgroep lesgroep = this.achternaam.SelectedItem as Lesgroep;
            this.listBox1.DataSource = new BindingSource { DataSource = dbc.Studenten(lesgroep) };
            this.listBox1.DisplayMember = "Achternaam";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            dbc.SaveChanges();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Student deze = dbc.Studenten().SingleOrDefault(C => C.Roepnaam == textBox1.Text);
            deze.Roepnaam = textBox3.Text.ToString();
            deze.voegsel = textBox4.Text.ToString();
            deze.Achternaam = textBox5.Text.ToString();
            //deze.Geboortedatum = Convert.ToInt32(textBox6.Text)();
            deze.Adres = textBox7.Text.ToString();
            deze.Postcode = textBox8.Text.ToString();
            deze.Woonplaats= textBox9.Text.ToString();
            deze.Email = textBox10.Text.ToString();
            deze.Mobiel = textBox11.Text.ToString();
            dbc.SaveChanges();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
  
    }

deze class gebruik ik nu alleen maar om de connectie te maken met de database
Code:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data.Entity.Validation;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace klassen_app
{
 public class EntityVoorbeeld
        {
        CijferDBEntities1 ce = new CijferDBEntities1();
            /// <summary>
            /// Algemene lijst van alle beschikbare lesgroepen
            /// </summary>
            /// <returns>ObservableCollection van alle groepen</returns>
            public ObservableCollection<Lesgroep> Lesgroepen()
            {
                return new ObservableCollection<Lesgroep>(ce.Lesgroepen);
            }


            /// <summary>
            /// Algemene lijst van lesgroepen per schooljaar
            /// </summary>
            /// <param name="schooljaar">Het schooljaar in de vorm van '1516' '1617' etc</param>
            /// <returns>ObservableCollection van alle groepen van het opgegeven schooljaar</returns>
            public ObservableCollection<Lesgroep> Lesgroepen(string schooljaar)
            {
                return new ObservableCollection<Lesgroep>(ce.Lesgroepen.Where(g => g.Schooljaar == schooljaar));
            }


            /// <summary>
            /// Algemene lijst van Studenten bij een opgegeven lesgroep
            /// </summary>
            /// <param name="groep">De groep waarvan de studenten worden gevraagd</param>
            /// <returns>ObservableCollection Studenten</returns>
            public ObservableCollection<Student> Studenten(Lesgroep groep)
            {
                return new ObservableCollection<Student>(groep.Student.OrderBy(s => s.Achternaam).ThenBy(s => s.Roepnaam));
            }
             /// <summary>
             /// Oproepen van Studenten
             /// </summary>
             /// <returns></returns>
            public ObservableCollection<Student> Studenten()
            {
                return new ObservableCollection<Student>(ce.Studenten.OrderBy(s => s.Achternaam).ThenBy(s => s.Roepnaam));
            }

        internal object Resultaaten()
        {
            throw new NotImplementedException();
        }

        /// <summary>
        ///  Algemene lijst van Studenten bij een opgegeven groepsnaam en schooljaar
        /// </summary>
        /// <param name="klas">De naam van de lesgroep</param>
        /// <param name="schooljaar">Het schooljaar van de groep</param>
        /// <returns>ObservableCollection Studenten</returns>
        public ObservableCollection<Student> Studenten(string klas, string schooljaar)
            {
                Lesgroep groep = ce.Lesgroepen.SingleOrDefault(g => g.Naam == klas && g.Schooljaar == schooljaar);
                return new ObservableCollection<Student>(groep.Student.OrderBy(s => s.Achternaam).ThenBy(s => s.Roepnaam));
            }

            /// <summary>
            /// Voorbeeld van een verpakking van het EntityFramework in de datalaag (DataModel)
            /// </summary>
            public EntityVoorbeeld()
            {

            }
            /// <summary>
            /// Algemene lijst van Studenten bij een opgegeven lesgroep
            /// </summary>
            /// <param name="groep">De groep waarvan de studenten worden gevraagd</param>
            /// <returns>ObservableCollection Studenten</returns>
            public ObservableCollection<Resultaat> Resultaaten(Lesgroep cijfers)
            {
                return new ObservableCollection<Resultaat>(ce.Resultaaten.OrderBy(v => v.Vak));
            }
            /// <summary>
            /// Methode om student in de database te stoppen
            /// </summary>
            /// <param name="student">Eeen object van Type Student, ingevuld</param>
            /// <returns>True as gelukt, false als mislukt</returns>
            public Boolean AddCijfer(Resultaat r)
            {
                ce.Resultaaten.Add(r);
                if (!SaveChanges())
                {
                    return false;
                }
                RaiseVakToegevoegd();
                return true;
            }
            public event EventHandler VakToegevoegd;
            private void RaiseVakToegevoegd()
            {
                if (VakToegevoegd != null)
                {
                   VakToegevoegd(this, EventArgs.Empty);
                }
            }
 
            /// <summary>
            /// Functie die zorgt voor het opslaan van alle wijzigingen in de database
            /// </summary>
            /// <returns>True/False. Indien false dan is Error gevuld met de foutcode</returns>
            public bool SaveChanges()
            {
                try
                {
                    ce.SaveChanges();
                }
                    
                catch (DbEntityValidationException dbex)
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (var error in dbex.EntityValidationErrors)
                    {
                        foreach (var item in error.ValidationErrors)
                        {
                            sb.AppendLine(item.ErrorMessage);
                        }
                    }

                    Error = sb.ToString();
                    return false;
                }

                catch (Exception ex)
                {

                    StringBuilder sb = new StringBuilder();
                    sb.AppendLine(ex.Message);
                    Exception source = ex.InnerException;
                    while (source != null)
                    {
                        sb.AppendLine(source.Message);
                        source = source.InnerException;
                    }

                    Error = sb.ToString();
                    return false;

                }
                Error = string.Empty;
                return true;

            }


            /// <summary>
            /// De eventuele foutcode van het opslaan van de wijzigingen
            /// </summary>
            public string Error { get; set; }



        }
    }
zo ziet de database er uit
Database.PNG
bijvoorbaad dank

ido
 
Laatst bewerkt:
Je roept simpelweg de verkeerde method aan:

Code:
internal object Resultaaten()
{
	hrow new NotImplementedException();
}
 
Bedankt voor je reactie.
Deze zag ik deze class over het hoofd.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan