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()

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top