Comment faire pour ajouter le “Nom du Fournisseur” dans la Chaîne de Connexion dans le fichier de Contexte?
Je suis en Utilisant Entity Framework 5 du Code de la première approche. Voici mon fichier de Contexte :
using IMS.Domain.Inventory;
using IMS.Domain.Security;
using IMS.Domain.StoredProcedures;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IMS.Domain.DBContext
{
public class IMSDBContext : DbContext
{
public DbSet<ModuleAccounting> ModuleAccountings { get; set; }
public DbSet<ModuleInfo> ModuleInfos { get; set; }
public DbSet<ModuleType> ModuleTypes { get; set; }
public DbSet<UserAccounting> UserAccountings { get; set; }
public DbSet<UserGroup> UserGroups { get; set; }
public DbSet<UserInfo> UserInfos { get; set; }
//
//set a connection string
public IMSDBContext() //Constructor of the Context
{
this.Database.Connection.ConnectionString =
"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=IMSDB;Data Source=.\\SQLExpress";
}
}
}
Ici, j'ai ajouté la chaîne de connexion dans le constructeur. Mais est-il possible d'ajouter le "Nom du Fournisseur" à la chaîne de connexion?
Votre chaîne de connexion ressemble à
SQLClient connection string
, de sorte que le fournisseur est SQLClient
, nous ajoutons Provider name
seulement dans OleDB
chaîne de connexion.
OriginalL'auteur raisul | 2013-08-25
Vous devez vous connecter pour publier un commentaire.
Est-il une raison particulière pour laquelle vous voulez avoir de la chaîne de connexion codée en dur dans la base de données de contexte. Normalement, il devrait être stockées dans le fichier de configuration. Vous pouvez spécifier le fournisseur dans le fichier de configuration et de renvoyer la chaîne de connexion à partir de votre contexte. Qui permettra de résoudre votre problème.
Et dans votre fichier de config
Une bonne raison de ne pas l'avoir dans votre config est si vous utilisez Azure paramètres de configuration pour remplacer votre localhost paramètres. Elles n'autorisent pas le fournisseur de l'attribut.
OriginalL'auteur Nuwan
Oui: Vous pouvez préparer un DbConnection type qui peut être transmis à DbContext
qui a été construit par le fournisseur sous-jacent et a la chaîne de connexion intégré correctement.
Pour réaliser cette chaîne de connexion dans le CODE... voir ci-dessous
rappel, que DBContext a une surcharge du constructeur
Donc, vous avez juste besoin de la Dbconnection construit par le sous-jacent de l'usine du fournisseur.
Voir
qui est mises en œuvre par ces 3 types:
Voici donc un exemple d'utilisation de SQLConnectionFactory. Qui renvoie un DBConnection.
Qui peut être passé à DBContext.
Vous pouvez répéter/modifier ou de faire des variable à votre la programmation de loisirs. Pour les 2 autres fournisseurs.
OriginalL'auteur phil soady