2009-11-30 19 views
0

Je rencontre un problème en travaillant avec tous mes projets. Je n'obtiens pas Intellisense avec Linq2Sql et, lorsque j'écris des classes partielles dans le dossier modèle, les propriétés créées par le concepteur Linq2Sql ne sont pas reconnues par les classes partielles. Donc, j'essaie d'éliminer toutes les sources possibles du problème.Can 'Ne pas mettre ma base de données sous le' App_Data 'affecte le fonctionnement de Linq2Sql?

J'ai 2 cas: (i) créer un fichier .mdf sous App_Data et (2) créer un fichier .dbo dans SQL EXPRESS 2005. Maintenant, quand je crée le fichier DataContext (par glisser-déposer tables dans le concepteur), vont-ils fonctionner de la même manière? Ou dois-je m'attendre à un comportement imprévu?

Merci

Répondre

0

App_Data est uniquement utilisé dans les applications ASP.NET et ne sert qu'à stocker le fichier de base de données physique (le processus de travail ASP.NET a toujours accès en lecture/écriture à ce dossier). Pour les applications normales, vous devez supprimer tout fichier de base de données dans les emplacements communs auxquels tout le monde a des droits (ou toute personne utilisant l'application).

Mettez votre DBML (classes LINQ to SQL fichier) dans le sous-dossier de votre projet où il est logique vis-à-vis de l'espace de noms. Par exemple, vous mettiez sous MyApp/données ou MyApp/dépôt ou MyApp/modèles, etc.

Dans le concepteur de .dbml, vérifiez la fenêtre de l'outil de propriétés et assurez-vous d'indiquer le nom et l'espace de noms pour le contexte de données et les entités. Vos classes partielles d'entité DOIVENT être dans l'espace de nom MÊME ou le compilateur ne saura pas les assembler.

+0

Lorsque je regarde l'outil Propriétés, je vois ceci: (i) Name = TheBeerHouseDataContext (2) Modificateur d'héritage = Aucun. Le reste des propriétés sont vides (Nom du contexte, Entité NameSpace, Chaîne de connexion). Est-ce que vous voulez dire ces propriétés? – Richard77

+0

Le nom est le nom du contexte (par exemple, TheBeerHouseDataContext.SubmitChanges()). L'espace de nom d'entité est l'espace de nom de toutes les classes d'entité (TheBeerHouse.Data.Beer b = TheBeerHouseDataContext.Beers.FirstOrDefault()) – Will

+0

Shoot, j'ai dit "mdf" quand je voulais dire dbml ... fixation. – Will