2009-03-27 8 views
1

Dank mit dieser Website, die ich erfolgreich ein Connection in einer web.config anstelle des in der app.config der Bibliothek zur Verfügung gestellt eines lokalisierte zu verwenden. Aber meine Produktion und mein Test SQL Server haben nicht den gleichen SQL-Benutzernamen.Bereitstellen ein LINQ to SQL-Bibliothek verschiedener SQL-Benutzer

Wenn ich den Benutzernamen vor dem Tabellennamen manuell entferne, funktioniert es. Aber ich habe immer noch Probleme:

  1. Ist es gut, das zu tun? Vielleicht gibt es einen potenziellen Fehler, den ich nicht kenne.
  2. Wenn es ein gutes Verhalten ist, wie kann ich es irgendwo konfigurieren? Jedes Mal, wenn LINQ die dbml neu generiert, werde ich meine Änderung verlieren. Ich denke, ich kann es nicht in eine partielle Klasse verschieben, da es ein Attribut ist und nicht neu definiert werden kann (ich möchte es nicht für alle Tabellen auch tun).

Vielen Dank für Ihre Hilfe.

+0

Ich habe hinzugefügt, um eine Frage zu ein ähnliches Problem hier http://stackoverflow.com/questions/2159516/linq-to-sql-need-different-usernames-for-prod-and-dev-dbml-on-table-attribute kamst du mit einem bis gute lösung dafür? – CRice

+0

Ja, ich habe das dbo Schema überall benutzt, so kann ich Table (Name = "dbo.tableName")] in allen Umgebungen verwenden – Gabriel

Antwort

0

Schließlich habe ich das dbo-Schema für alle Tabellen I erstellt, auf diese Weise ich die Abhängigkeit von dem Benutzer und LINQ entfernt konnte den DBML wieder, ohne die Bereitstellung erzeugen:

Table(Name="dbo.tableName")] 
public partial class tableName : INotifyPropertyChanging, INotifyPropertyChanged 
{ 
    ... 
} 
0

Verwenden gleichen Namen für Verbindungszeichenfolgen in web.config lokalen und Remote-Server, aber unterschiedliche Benutzernamen und Passwort für sie verwenden.

Ich verfolge diese Praxis, und es ist perfekt für mich.