none
Update con Entity Framework RRS feed

  • Pregunta

  • Estimados,

    Estoy realizando una aplicación y recién comienzo con Entity Framework, y el código que tengo me dicen que es para agregar , para hacer un INTO y no un UPDATE, mi código:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.DirectoryServices;
    
    namespace Actualizar_Usuarios
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                
            }
    
            private void cargar()
            {
                DirectoryEntry server = new DirectoryEntry("LDAP://10.100.0.124:389","Ldap","Ldap2011");
                DirectorySearcher buscador = new DirectorySearcher(server);
    
                buscador.Filter = "(&((&(objectCategory=Person)(objectClass=User))))";
    
                foreach (SearchResult item in buscador.FindAll())
                {                                              
    
                    string nombre = GetProperty(item, "cn");
                    string correo = GetProperty(item, "mail");                
                    string run = GetProperty(item, "description");                
                    string cargo = GetProperty(item, "title");
                    string campus = GetProperty(item, "company");                            
                    string departamento = GetProperty(item, "departamanet");
                    string anexo = GetProperty(item, "ipPhone");
                    string usuario = GetProperty(item, "sAMAccountName");
                    string apellidos = GetProperty(item, "sn");
                    string nombres = GetProperty(item, "givenName");
    
                    string[] row = new string[] {nombre,run,correo,cargo,campus,departamento,anexo,usuario,apellidos,nombres};
                    dgvActivos.Rows.Add(row);
    
                    if (correo != "")
                    {
                        updateUser(correo, nombre, run, cargo, campus, departamento, anexo, usuario, apellidos, nombres);
                    }
                    
    
                }
    
                tmrEjecutar.Stop();
    
            }
    
            public static string GetProperty(SearchResult searchResult, string PropertyName)
            {
                if (searchResult.Properties.Contains(PropertyName))
                {
                    return searchResult.Properties[PropertyName][0].ToString();
                }
                else
                {
                    return string.Empty;
                }
            }
    
            private void tmrEjecutar_Tick(object sender, EventArgs e)
            {
                cargar();
            }
    
            private void Form1_Shown(object sender, EventArgs e)
            {
                tmrEjecutar.Enabled = true;
                tmrEjecutar.Start();
            }
    
            ocswebEntities db = new ocswebEntities();
    
            private void updateUser(string correo, string nombre, string run, string cargo, string campus, string departamento, string anexo, string usuario, string apellidos, string nombres)
            {
    
                var query = (from datos in db.accountinfo
                             where datos.fields_19 == correo
                             select datos).FirstOrDefault();
    
                if (query == null)
                {            
                    return;
                }
    
                accountinfo user = new accountinfo()
                {
    
                    fields_20 = string.IsNullOrEmpty(query.fields_20) ? nombre : query.fields_20.Replace(query.fields_20, nombre),
                    fields_11 = string.IsNullOrEmpty(query.fields_11) ? run : query.fields_11.Replace(query.fields_11, run),
                    fields_12 = string.IsNullOrEmpty(query.fields_12 ) ? cargo : query.fields_12.Replace(query.fields_12, cargo),
                    fields_13 = string.IsNullOrEmpty(query.fields_13) ? campus : query.fields_13.Replace(query.fields_13, campus),
                    fields_14 = string.IsNullOrEmpty(query.fields_14) ? departamento : query.fields_14.Replace(query.fields_14, departamento),
                    fields_15 = string.IsNullOrEmpty(query.fields_15) ? anexo : query.fields_15.Replace(query.fields_15, anexo),
                    fields_16 = string.IsNullOrEmpty(query.fields_16) ? usuario : query.fields_16.Replace(query.fields_16, usuario),
                    fields_18 = string.IsNullOrEmpty(query.fields_18) ? apellidos : query.fields_18.Replace(query.fields_18, apellidos)
                };            
    
                db.accountinfo.Add(user);
                db.SaveChanges();            
    
            }
        }
    }
    

    En el updateUser, me arroja error, porque no tengo bien el código para actualizar, desde ya gracias.

    Saludos.

    viernes, 4 de septiembre de 2015 14:10

Respuestas

  • hola

    pero alli estas insertando, no veo que updateUser haces referencia

    ademas el link puedes simplificarlo

    var query =  db.accountinfo.FirstOrDefault(d=> d.fields_19 == correo);
                           
    

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Alexis Rebolledo martes, 15 de septiembre de 2015 20:57
    viernes, 4 de septiembre de 2015 17:43

Todas las respuestas

  • hola

    pero alli estas insertando, no veo que updateUser haces referencia

    ademas el link puedes simplificarlo

    var query =  db.accountinfo.FirstOrDefault(d=> d.fields_19 == correo);
                           
    

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Alexis Rebolledo martes, 15 de septiembre de 2015 20:57
    viernes, 4 de septiembre de 2015 17:43
  • Coincido con Leandro no se ve la parte que actualice, para actualizar en EF, yo lo hago de la siguiente manera

    contexto.Entry(TuEntidad).State = System.Data.EntityState.Modified;
    contexto.SaveChanges();

    miércoles, 25 de noviembre de 2015 17:22