none
Como hago funcionar Windowsazure en Windows Phone 8 RRS feed

  • Pregunta

  • Buenas, intento hacer funcionar Windowsazure utlizando la aplicacion de ejemplo de Microsoft descargada de esta web,

    http://code.msdn.microsoft.com/Get-Started-with-Data-in-5d10271

    sigo este tutorial con la web, de windowsazure y no consigo descomentando el metodo como dice en el propio codigo de ejemplo, vamos que sigo el tutorial y me da este error, ademas los programas lo pruebo en mi propio telefono con Windows Phone 8, van bastante bien pero esto de Windowsazure no le encuentro solucion para utilizar Windowsazure y llevo asi mas de 1 mes.

    private async void InsertTodoItem(TodoItem todoItem)
            {
                // TODO: Delete or comment the following statement; Mobile Services auto-generates the ID.
                //todoItem.Id = items.Count == 0 ? 0 : items.Max(i => i.Id) + 1;

                //// This code inserts a new TodoItem into the database. When the operation completes
                //// and Mobile Services has assigned an Id, the item is added to the CollectionView
                //// TODO: Mark this method as "async" and uncomment the following statement.
                await todoTable.InsertAsync(todoItem);

                items.Add(todoItem);
            }

    el error que me da es el siguiente, pòngo imagen, saludos

    http://img15.imageshack.us/img15/5218/3iei.png

    si es que Visual Studio 2012 express for Windows Phone no me da mas informacion, la base de datos la tengo de esta manera.

    public class TodoItem
        {
            public int Id { get; set; }

            //// TODO: Add the following serialization attribute.
            [JsonProperty(PropertyName = "text")]
            public string Text { get; set; }

            //// TODO: Add the following serialization attribute.
            [JsonProperty(PropertyName = "complete")]
            public bool Complete { get; set; }

            //// TODO: Uncomment the following property after you add
            //// the createdAt timestamp column in the table.        
            [JsonProperty(PropertyName = "createdAt")]
            public DateTime? CreatedAt { get; set; }
        }

    Esta co,mo explica el ejemplo eso si estos datos estan puestos port mi segun la informacion de como hacerlo funcionar, gracias.

    martes, 17 de diciembre de 2013 14:35

Respuestas

  • Hola onzulin.

    Es una tonteria, pero, ¿tienes conectividad a internet en el emulador,?, Puedes acceder a la url de tu servicio desde el navegador del emulador?.

    Otro posible problema sea que no tengas bien configurado el servicio, indicando al crear el MobileServiceClient los datos de url y clave de aplicacion.

    De todas formas hace mas o menos un mes, se cambio la forma de crear tablas de datos en mobile services. El campo que tienes en la clase TodoItem llamado CreatedAt, me invita a pensar que este servicio esta creado ya con esa nueva version.

    Si ese fuera el caso, de esa clase TodoItem, puedes quitar la propiedad CreatedAt, esta propiedad la gestiona directamente Mobile Services dentro del propio servicio. Y por otro lado la propiedad Id, debe de ser de tipo string (ojo siempre y cuando esa tabla del servicio este creada recientemente).

    Me acabo de descargar el ejemplo que comentas y la clase no te la crea exactamente así, y ademas la asignacion de los valores para realizar un insertAsync tambien cambia al ser la propiedad Id de tipo String.


    Mi Blog: http://www.geeks.ms/blogs/rserna Mi cuenta de Twitter: www.twitter.com/rafasermed

    • Propuesto como respuesta Josue YerayMVP jueves, 19 de diciembre de 2013 7:15
    • Marcado como respuesta Omar Ortiz jueves, 26 de diciembre de 2013 18:59
    miércoles, 18 de diciembre de 2013 8:23

Todas las respuestas

  • Hola onzulin.

    Es una tonteria, pero, ¿tienes conectividad a internet en el emulador,?, Puedes acceder a la url de tu servicio desde el navegador del emulador?.

    Otro posible problema sea que no tengas bien configurado el servicio, indicando al crear el MobileServiceClient los datos de url y clave de aplicacion.

    De todas formas hace mas o menos un mes, se cambio la forma de crear tablas de datos en mobile services. El campo que tienes en la clase TodoItem llamado CreatedAt, me invita a pensar que este servicio esta creado ya con esa nueva version.

    Si ese fuera el caso, de esa clase TodoItem, puedes quitar la propiedad CreatedAt, esta propiedad la gestiona directamente Mobile Services dentro del propio servicio. Y por otro lado la propiedad Id, debe de ser de tipo string (ojo siempre y cuando esa tabla del servicio este creada recientemente).

    Me acabo de descargar el ejemplo que comentas y la clase no te la crea exactamente así, y ademas la asignacion de los valores para realizar un insertAsync tambien cambia al ser la propiedad Id de tipo String.


    Mi Blog: http://www.geeks.ms/blogs/rserna Mi cuenta de Twitter: www.twitter.com/rafasermed

    • Propuesto como respuesta Josue YerayMVP jueves, 19 de diciembre de 2013 7:15
    • Marcado como respuesta Omar Ortiz jueves, 26 de diciembre de 2013 18:59
    miércoles, 18 de diciembre de 2013 8:23
  • Vale bueno pues uno de los problemas que veo en el programa este que tepuse es que items no obtiene ningun valor vale null y entoces claro para insertar los valores en el Id hay que por ej utilizar el autonumerico y hacerlo uno mismo,supongamos que quiero hacer eso pues no puedo pq items no obtiene valores vale null

    private MobileServiceCollection<TodoItem, TodoItem> items; esta linea no obtiene valor vale null ¿porque?

    private IMobileServiceTable<TodoItem> todoTable = App.MobileService.GetTable<TodoItem>(); esta linea si obtiene valores de la base de datos

    yo creo que el fallo va por ahi, gracias ahi te dejo la modificacion que he hecho en el metodo InsertTodoItem

    private async void InsertTodoItem(TodoItem todoItem)
            {
                // TODO: Delete or comment the following statement; Mobile Services auto-generates the ID.
                //todoItem.Id = items.Count == 0 ? 0 : items.Max(i => i.Id) + 1;
                // este numero entero luego lo convertimos a string con el objeto convert
                int contarItem = items.Count + 1;

                todoItem.Id = Convert.ToString(contarItem);
                //// This code inserts a new TodoItem into the database. When the operation completes
                //// and Mobile Services has assigned an Id, the item is added to the CollectionView
                //// TODO: Mark this method as "async" and uncomment the following statement.
                await todoTable.InsertAsync(todoItem);

                items.Add(todoItem);
            }

    lunes, 23 de diciembre de 2013 14:07