Frage

Wenn ich gespeicherte Prozeduren zu einer Linq Datacontext hinzufügen, wird standardmäßig Visual Studio Präfixe die gespeicherte Prozedur mit dem SQL-Schema, dass es in ist. Gibt es eine Möglichkeit, dies zu stoppen? In unserer Umgebung können die gespeicherten Prozeduren zu anderem Schema im Laufe der Zeit verschoben werden, und wir werden das Schema basiert auf dem SQL-Benutzer verwendet, um eine Verbindung Standard. Muss ich dies manuell tun oder kann ich deaktivieren irgendwie die Schema-Präfixe?

War es hilfreich?

Lösung

Es scheint keine Mittel, um der Entfernung des Schemas von LINQ to SQL gespeicherte Prozeduren grenzten die Designer. Alle Procs sind einschließlich ihrer Schemanamen zugeordnet, die (fair zu sein) ist wahrscheinlich eine gute Sache für die meisten Anwendungen. Und wie bei den meisten Dingen LINQ-to-SQL, ändern Sie Ihre Datenbank auf eigene Gefahr. Zu viele Datenbankänderungen erforderlich LINQ to SQL dbml Updates und Modernisierungen.

Graben tiefer, der Schemaname in der Träger dbml XML-Datei gespeichert wird, und wird dann in der generierten designer.cs-Datei enthalten, die die Funktionen / Methoden enthält, die aufgerufen werden.

// dbml
<Function Name="dbo.MyProc" Method="MyProc">

// designer.cs
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.MyProc")]
public int MyProc()

Wenn Sie manuell die dbml XML-Datei bearbeiten, um das Schema zu entfernen und speichern in Visual Studio wird der Code wie folgt regeneriert werden:

// changed dbml - removed the dbo schema
<Function Name="MyProc" Method="MyProc">

// the resultant generated code in designer.cs
[global::System.Data.Linq.Mapping.FunctionAttribute()]
public int MyProc()

Was für mein Konto gearbeitet, mit dbo als Standardschema anzumelden. Ich lasse die Sie testen auf.

Dies könnte eine praktikable Lösung sein - der visuelle Designer immer noch wie das funktioniert, können andere Elemente usw. hinzugefügt werden, ohne das Schema lose Funktion zu brechen, und die Funktion selbst nicht Ursache die Designer zu beschweren. Viel Glück!

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