J'ai fait quelques recherches mais je n'ai pas réussi à comprendre comment lier les contextes de données LinqToSql avec des chaînes de connexion spécifiées dans différents référentiels.Comment configurer Ninject pour ASP.NET MVC en utilisant LinqToSQL et Repository Pattern
Cette liaison est effectuée dans global.ajax lorsque les routes sont enregistrées. J'utilise un modèle de référentiel assez standard pour découpler l'infrastructure LinqToSql de mon application afin de pouvoir changer l'infrastructure technologique dans le futur (NHibernate, EntityFramework etc.). De plus, rendre mon code facilement testable à l'unité et simulable.
J'ai quelque chose comme ça.
string desktopConnectionString = ConfigurationManager.ConnectionStrings["Desktop"].ConnectionString;
string messagingConnectionString = ConfigurationManager.ConnectionStrings["MessageQueue"].ConnectionString;
string usersConnectionString = ConfigurationManager.ConnectionStrings["Users"].ConnectionString;
// Map linqToSql entity types to interfaces
TableMapper typeFinder = new TableMapper();
typeFinder.Define<EzsDashboard>().As<IDashboard>();
typeFinder.Define<EzsDashboardGadget>().As<IGadget>();
typeFinder.Define<EzsDashboardGadgetAssignment>().As<IGadgetAssignment>();
...
IDesktopRepository dr = new DesktopRepository(new LinqToSqlDataSource(new DataContext(desktopConnectionString), typeFinder)));
Bind<IDesktopRepository>().ToConstant(dr).InRequestScope();
IUserRepository ur = new UserRepository(new LinqToSqlDataSource(new DataContext(usersConnectionString), typeFinder)));
Bind<IUserRepository>().ToConstant(ur).InRequestScope();
IMessageRepository mr = new MessageRepository(new LinqToSqlDataSource(new DataContext(messagingConnectionString), typeFinder)));
Bind<IMessageRepository>().ToConstant(mr).InRequestScope();
Alors que cela fonctionne physiquement. Je trouve les données dans mon application asp.net MVC revient souvent obsolète. Par exemple, je vais ajouter un gadget au tableau de bord qu'il affiche et si je vérifie la base de données, il a été enregistré correctement dans la base de données. Je recharge la page et le tableau de bord ne montre rien. Un clic sur l'application provoque parfois son actualisation et les données enregistrées sont affichées.
Une autre façon de voir cela est si je fais une modification de mon web.config et déclenche une application re-charger. Quand je tape sur le tableau de bord tout se présente exactement comme il se doit.
Quelqu'un peut-il s'il vous plaît fournir de l'aide d'une connexion de liaison string-> DataContext-> LinqToSqlDataSource-> DomainRepository
Parfait. Votre raisonnement derrière le référentiel étant transmis à travers les demandes dues à BindToConstant semble raisonnable. J'avais InRequestScope à la fin de la liaison, mais il ne devait pas fonctionner correctement. Votre solution a supprimé quelques lignes de code supplémentaires et résolu le problème de données obsolètes que j'avais. Merci beaucoup. Btw, oui cela a été fait au début de l'application; –