Je trouve étrange que dans l'édition Visual C # 2008 Express, lorsque vous utilisez l'explorateur de base de données, vos options soient:
MAIS si vous utilisez Visual Web Developer 2008 Express, vous pouvez vous connecter à un serveur SQL Server standard, Oracle, ODBC, etc.
Pour les personnes qui développent une ligne de commande ou d'autres applications C # qui ont besoin de parler à une base de données SQL Server, avez-vous vraiment besoin de créer votre code LINQ/Data Access avec un IDE (Visual Web Developer) et votre programme dans un autre (Visual C #)?
Ce n'est pas une solution de contournement difficile, mais cela semble bizarre. Si Microsoft voulait vous forcer à mettre à niveau vers Visual Studio pour vous connecter à SQL Server, pourquoi incluraient-ils cette fonctionnalité dans l'un de leurs IDE gratuits mais pas dans l'autre? Je sens que je pourrais manquer quelque chose (comme comment tout faire dans Visual C #).
Vous devriez pouvoir choisir l'option de fichier de base de données SQL Server pour obtenir le bon type de base de données (le system.data.SqlClient
provider), puis corrigez manuellement la chaîne de connexion pour pointer vers votre base de données.
Je pense que le raisonnement derrière ces choix de base de données va probablement quelque chose comme ceci:
Cependant, cette logique ne tient pas tout à fait. Même si chacun de ces 4 points est vrai 90% du temps, au moment où vous appliquez les quatre, cela ne s'applique qu'à ~ 65% de votre public, ce qui signifie que jusqu'à 35% du marché express pourrait légitimement vouloir parler à une base de données de classe serveur, et c'est un groupe important. Et donc, la version simplifiée (gourmande):
Solution de contournement:
Vous disposez maintenant d'une bibliothèque de classes LINQ to SQL qui est liée à votre base de données SQL Server dans Visual C # Express.
Mise à jour
La solution est pour Visual Studio Express 2010.
La seule façon de faire fonctionner C # Express 2008 était de déplacer le fichier de base de données. J'ai donc ouvert SQL Server Management Studio et après avoir supprimé la base de données, j'ai copié le fichier dans mon dossier de projet. Ensuite, j'ai réattaché la base de données au studio de gestion. Maintenant, lorsque j'essaie de joindre à la copie locale, cela fonctionne. Apparemment, vous ne pouvez pas utiliser le même fichier de base de données plus d'une fois.
Je suppose qu'avec VWD, vos solutions sont plus susceptibles d'être déployées sur des serveurs tiers, dont beaucoup ne permettent pas un fichier de base de données SQL Server attaché dynamiquement. D'où l'autorisation de l'autre type de connexion.
Cette différence de comportement IDE est l'une des principales raisons de la mise à niveau vers une version complète.
Il se trouve que j'ai commencé mon application d'entreprise à domicile sous Windows pour la commodité. J'utilise actuellement Visual C # Express 2010/SQL Server 2008 R2 Express pour le développer. J'ai eu le même problème que OP où je dois me connecter à une instance de SQL Server. Je saute des détails ici, mais cette base de données sera une base de données fusionnée synchronisée entre 2-3 ordinateurs qui utilisera également l'application que je développe en ce moment.
J'ai trouvé une solution rapide, du moins, je pense que je l'ai fait parce que je suis maintenant en mesure d'utiliser mes procédures stockées dans les adaptateurs de table sans aucun problème jusqu'à présent.
J'ai copié collé une connexion SQL que j'ai utilisée dans un autre projet au travail (VS2010 Premium) dans app.config et j'ai changé tout ce dont j'avais besoin. Quand je suis retourné à mes Settings.settings, je devais juste confirmer que je voulais ce qui était à l'intérieur du fichier app.config. Le seul inconvénient que je peux voir est que vous ne pouvez pas "tester" la connexion car lorsque vous allez dans la configuration de la chaîne de connexion, vous ne pouvez aller nulle part car "SQL Server" n'est pas une option. L'autre inconvénient est que vous devez tout saisir manuellement car vous ne pouvez utiliser aucun assistant pour le faire fonctionner.
Je ne sais pas si j'aurais dû le faire de cette façon mais au moins je peux me connecter à mon serveur SQL maintenant :).
MODIFIER:
Il ne fonctionne qu'avec les instances SQL Server 2008 R2 Express. Si vous essayez avec SQL Server 2008 R2 Workgroup et plus, vous obtiendrez un avertissement désagréable de Visual C # 2010 Express vous indiquant que "vous ne pouvez pas utiliser cette connexion avec la version actuelle de Visual Studio". J'ai compris cela lorsque j'essayais de modifier certains de mes adaptateurs de table. Je suis revenu à une instance SQL Express pour développer et cela fonctionne à nouveau correctement.
Si vous l'utilisez pour obtenir un LINQ to SQL que je fais et que je voulais pour mon développeur visuel, 1) obtenez le développeur Visual WEB gratuit, utilisez-le pour vous connecter à l'instance SQL Server, créez votre interface LINQ, puis copiez les fichiers générés dans votre projet Vis-Dev (je n'utilise pas VD car ça a l'air drôle). N'incluez que les fichiers * .dbml. L'environnement Vis-Dev prendra une seconde ou deux pour reconnaître les fichiers de prise en charge. C'est une petite étape supplémentaire mais certainement mieux que de le faire à la main ou de l'abandonner complètement ou MÊME PIRE, en le payant. Mooo ha ha haha.