Frage

Wie würdest du das machen LINQ-TO-SQL Geben Sie den Anbieter ein, generieren oder/und regenerieren Sie die Klassen?

Ich habe gerade eine neue Tabelle zu meiner Datenbank hinzugefügt, und der Typanbieter kann das nicht herausfinden. Ich habe versucht, die Linie mit dem Typ Anbieter zu löschen und sie noch einmal einzugeben - kein Glück. Ich habe auch versucht, einen Wiederaufbau zu machen. Trotzdem kein Glück.

Bearbeiten:

Ich habe den Typanbieter wie definiert:

[<Generate>]
type dbSchema = SqlDataConnection<"conString">

und es benutze es wie:

let ctx = dbSchema.GetDataContext()

War es hilfreich?

Lösung

Sie haben Recht - das scheint ziemlich schwierig zu sein. Ich benutze SqlDataConnection Geben Sie den Anbieter in eine Skriptdatei ein und die einzige Möglichkeit, das bisher festgestellte Schema zu aktualisieren, besteht darin, eine geringfügige (irrelevante) Änderung in der Verbindungszeichenfolge vorzunehmen. Fügen Sie zum Beispiel Platz nachher hinzu = eines der Parameter:

[<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

Das Schema scheint mit der Verbindungszeichenfolge als Schlüssel zwischengespeichert zu werden. Wenn Sie es also wieder ändern, erhalten Sie das alte Schema erneut. Ich denke, das ist wahrscheinlich ein Fehler. Das Hinzufügen von Whitespace ist also eine mögliche Problemumgehung.

Es gibt auch einen Parameter ForceUpdate, aber das scheint keine Wirkung zu haben und die Dokumentation sagt nicht viel darüber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top