none
Entity Framework y SilverLight 4 RRS feed

  • Pregunta

  • Hola buen día.

    Estoy empezando a usar  Framework usando un Domain Service Class.

    Tengo un agregado en mi proyecto un objeto ADO.NET  Entity Data Model y uso SilverLight 4 y los RIA Services.

    Al momento de Crear mi Domain Service me crea pro defecto las funciones de consulta modificación y de eliminación de la entidad y aparte yo creo una función para saber el valor máximo de una clave que uso esta la uso con [Invoke] para poder usarla desde SL, el problema es que también debo usar el método de inserción que me genera public void InsertProductos(Productos Productos) pero no puedo accesar desde SL, y eso es lo que me gustaría me dijeran como hacerlo.

    Dejo una parte del código:

     

    DomainServiceClass

    public IQueryable<Productos> GetProductos()

    {

    return this.ObjectContext.Productos;

    }

    [Invoke]

    public int GetMaxProductos()

    {

    int maximo = this.ObjectContext.Productos.Max(p => p.Cve_Pkid);

    return maximo + 1;

    }

    public void InsertProductos(Productos Productos) //Esta función la debo usar para insertar productos.

    {

    if ((Productos.EntityState != EntityState.Detached))

    this.ObjectContext.ObjectStateManager.ChangeObjectState(Productos, EntityState.Added);

    else

    this.ObjectContext.Productos.AddObject(Productos);

    }

     

    Silverlight 4

    private dscProductos _context = new dscProductos ();//DomainService

    void set_Grid(object sender, RoutedEventArgs e)

    {           

    LoadOperation<Productos> lop = _context.Load<Productos>(_context.GetProductosQuery());

    dtgDatos.ItemsSource = lop.Entities;

    }

    private void Guardar_Click(object sender, RoutedEventArgs e)

    {

    InvokeOperation<int> invokeOp = _context.GetMaxProductos(OnInvokeCompleted_Insert, null);               

    }

    private void OnInvokeCompleted_Insert(InvokeOperation<int> invOp)

    {

    if (invOp.HasError)

    {

                    MessageBox.Show(string.Format("Error: {0}", invOp.Error.Message));

                     invOp.MarkErrorAsHandled();

    }

    else

                    {

                     // Aca debo insertar los productos                 

    Se supone que aca devo utilizar la función InsertProductos del DomainService, pero no veo la forma de hacerlo..

                    }

    }

           

    Espero puedan apoyarme, Gracias .

    viernes, 8 de abril de 2011 14:02