Supponiamo di avere una tabella con la colonna Descrizione, varchar (100). Se provi ad inserire una stringa con più di 100 caratteri, l'inserimento fallirà.Entity Framework 4.0 Troncamento automatico/Trim stringa prima dell'inserimento
Esiste un modo in Entity Framework per troncare o tagliare automaticamente la stringa per adattarla alla colonna prima di inserirla nella colonna? Nel mio scenario, non mi interessa davvero se la stringa è troncata, voglio solo che sia inserita piuttosto che fallire e loggare il rror.
Poiché il modello conosce già i limiti di lunghezza, stavo pensando che per Entity Framework potrebbe esserci un modo per farlo.
Se questo non è supportato, qual è il modo migliore per farlo? Estendi le classi parziali generate automaticamente e sovrascrivi i metodi On * Changed? Preferirei non codificare i limiti di lunghezza, ma piuttosto usare i limiti di lunghezza già definiti nel modello di entità. Come posso avere accesso a questo?
Modifica
La mia soluzione finale era quello di implementare l'On * Cambiato il metodo parziale dell'entità generato automaticamente.
Ho utilizzato this method di ottenere ObjectContext dall'istanza dell'entità e quindi ho utilizzato il metodo seguente per estrarre la lunghezza massima e troncare la stringa.
Funziona, ma stranamente, solo per alcune colonne. Sembra che EF non riesca a recuperare la lunghezza della colonna da colonne arbitrarie nel mio caso. –
@ReuelRibeiro Se riesci a creare passi di riproduzione e a metterlo in una nuova domanda, sarei lieto di dare un'occhiata per vedere se posso aggiustarlo per te. Non ho avuto problemi con questo codice anche se recentemente ho smesso di usarlo ora che Entity Framework Extensions ha questa funzionalità integrata e la usiamo ora. – Jaxidian