Tipo provider: Come rigenerare?
-
27-10-2019 - |
Domanda
Come vi imporre al prestatore tipo LINQ-TO-SQL
, generare e / o rigenerare le classi?
Ho appena aggiunto una nuova tabella al mio database, e il provider tipo non può capirlo. Ho cercato di eliminare la riga con il fornitore di tipo, e digitarla una volta di più - senza fortuna. Ho anche provato a fare una ricostruzione .. ancora senza fortuna.
Modifica
Ho definito il provider di tipo come:
[<Generate>]
type dbSchema = SqlDataConnection<"conString">
e di utilizzarlo come:
let ctx = dbSchema.GetDataContext()
Soluzione
Hai ragione - questo sembra essere abbastanza difficile. Sto usando prestatore tipo SqlDataConnection
in un file di script e l'unico modo per aggiornare lo schema che ho trovato finora è quello di fare un po 'minore (irrilevante) cambiamento nella stringa di connessione. Ad esempio, aggiungere spazio dopo =
di uno dei parametri:
[<Generate>]
type Northwind = TypeProviders.SqlDataConnection
<"data source=.\\sqlexpress;initial catalog=Northwind;integrated security=True">
[<Generate>]
type Northwind = TypeProviders.SqlDataConnection
<"data source=.\\sqlexpress;initial catalog=Northwind;integrated security= True">
// ^ here
Lo schema sembra essere memorizzate nella cache tramite stringa di connessione come la chiave, quindi se si cambia di nuovo, si ottiene ancora una volta il vecchio schema. Credo che questo è probabilmente un bug, quindi l'aggiunta di spazi bianchi è una possibile soluzione.
C'è anche un ForceUpdate
parametro, ma che non sembra avere alcun effetto e la documentazione non dice molto su di esso.