Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Errore foreach dopo query LINQ to Entities

    Ciao a tutti,
    dopo aver effettuato una query LINQ, nel momento in cui vado a processare i dati tramite foreach, ricevo un errore di conversione dei dati. Il codice è il seguente:


    codice:
    
    
    codice:
    using (uno_rpEntities oitEntity = new uno_rpEntities())
    {
    MatriceQuery = from UNO_MMA_M in oitEntity.UNO_MMA_M
    //join UNO_MMA_D in oitEntity.UNO_MMA_D on UNO_MMA_M.ID equals UNO_MMA_D.ID
    where UNO_MMA_M.CSG_DOC == "FT"
    selectnew Documento
    {
    ID = UNO_MMA_M.ID,
    serie = UNO_MMA_M.NGB_SR_DOC,
    numero = UNO_MMA_M.NGL_DOC,
    contoCliFor = UNO_MMA_M.CKY_CNT_CLFR,
    dataCreazione = Convert.ToDateTime(UNO_MMA_M.DTT_DOC),
    magazzino = Convert.ToInt32(UNO_MMA_M.NKY_DEP.ToString()) 
    };
    






    L'errore che ricevo è


    System.NotSupportedException: 'LINQ to Entities non riconosce il metodo 'System.DateTime ToDateTime(System.Object)', che pertanto non può essere convertito in un'espressione di archivio.'


    Questo si presenta per tutti i dati che non sono di tipo stringa. Non riesco minimamente a capire che diavolo voglia.

    Avete qualche suggerimento?
    Ogni popolo ha il governo che si merita...

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,253
    LINQ to Entities non riconosce il metodo 'System.DateTime ToDateTime(System.Object)'
    Non esiste una todatetime che prende in input un object, solo string.
    UNO_MMA_M.DTT_DOC lo riconosce come object.

  3. #3
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    LINQ to Entities non riconosce il metodo 'System.DateTime ToDateTime(System.Object)'
    Non esiste una todatetime che prende in input un object, solo string.
    UNO_MMA_M.DTT_DOC lo riconosce come object.
    Si, ma come lo devo trattare? Nel senso questo "item" dovrebbe andare a finire dentro una mia classe dove la proprietà è di tipo DateTime; pur facendo un toString il risultato non cambia.
    Ogni popolo ha il governo che si merita...

  4. #4
    modificando il codice in questo modo:
    codice:
    dataCreazione = Convert.ToDateTime(UNO_MMA_M.DTT_DOC.ToString().Trim()),
    mi restituisce:

    'LINQ to Entities non riconosce il metodo 'System.DateTime ToDateTime(System.String)', che pertanto non può essere convertito in un'espressione di archivio.'
    Ogni popolo ha il governo che si merita...

  5. #5
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,253
    Quote Originariamente inviata da GANDULE Visualizza il messaggio
    modificando il codice in questo modo:
    codice:
    dataCreazione = Convert.ToDateTime(UNO_MMA_M.DTT_DOC.ToString().Trim()),
    mi restituisce:

    'LINQ to Entities non riconosce il metodo 'System.DateTime ToDateTime(System.String)', che pertanto non può essere convertito in un'espressione di archivio.'
    E' vero, ignoranza mia, è un problema relativo a linq to entities
    leggi qua
    https://forums.asp.net/t/1796651.asp...+string+method

  6. #6
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    E' vero, ignoranza mia, è un problema relativo a linq to entities
    leggi qua
    https://forums.asp.net/t/1796651.asp...+string+method

    Cioè, quindi se ho capito bene devo gestire qualsiasi dato come una stringa, e poi farmi le conversioni direttamente nel codice?
    Ogni popolo ha il governo che si merita...

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    nella query non puoi mettere una funzione c#, stai mischiando due linguaggi...

  8. #8
    Quote Originariamente inviata da djciko Visualizza il messaggio
    nella query non puoi mettere una funzione c#, stai mischiando due linguaggi...
    Uhm, non capisco, ma scusa, non è ciò che dovrebbe fare l'entity framework? Rendermi il database un oggetto da gestire con ASP.NET?

    Con quel codice la mia idea era quella di prendere i dati dal database per ritrovarmeli sottoforma di oggetti già gestibili.
    In questo caso li ho fatti associare a degli oggetti i quali parametri sono tutte stringhe; poi provvedo a farmi io la conversione a questo punto, sbaglio?
    Ogni popolo ha il governo che si merita...

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Quote Originariamente inviata da GANDULE Visualizza il messaggio
    Uhm, non capisco, ma scusa, non è ciò che dovrebbe fare l'entity framework? Rendermi il database un oggetto da gestire con ASP.NET?
    non lo conosco benissimo, ma e' ovvio che non hai TUTTO del framework, Entity nasce come wrapper per il DB facendo delle classi in automatico, non hanno inserito tutte le funzioni. Se poi mi sbaglio corregetemi, una volta ho provato a farlo ed un metodo c'era in effetti dalla query stessa, ma non ricordo quale.

    ma se provi a vedere che metodi ti offre UNO_MMA_M.DTT_DOC, cosa ottieni ? (mettendoci un punto, al contrario, tentando di fare dopo la conversione)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.