Obtenir des données à partir de tables à l'Aide de Entity Framework modèle de données
Je suis en utilisant Entity Framework modèle de données pour manipuler des données à partir de la base de données (opérations CRUD). Je veux obtenir toutes les données à partir de tables (pas un seul).
Ici est le modèle de base de données:
Je veux obtenir plusieurs données de toutes les tables.
Actuellement, je suis en utilisant la requête affichés ci-dessous mais le problème avec cette requête est que j'ai eu plusieurs valeurs à partir de tables de Contact et les autres tables n'affiche qu'un seul résultat. Quelqu'un sait pourquoi ma requête ne fonctionne pas et comment obtenir tous les multiples de données à partir de tables.
Ici est de Requête/Fonction permettant d'obtenir toutes les données de la base de données:
ContactsEntities db = new ContactsEntities();
//get all contacts
public JsonResult GetAll()
{
var data = (from c in db.Contacts
from e in db.Emails.Where(x => x.id == c.id).DefaultIfEmpty()
from p in db.Phones.Where(x => x.id == c.id).DefaultIfEmpty()
from t in db.Tags.Where(x => x.id == c.id).DefaultIfEmpty()
select new
{
id = c.id,
phones = p.number,
emails = e.email1,
tags = t.tag1,
firstname = c.firstname,
lastname = c.lastname,
address = c.address,
city = c.city,
bookmarked = c.bookmarked,
notes = c.notes
}).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
Je vais ajouter ce dernier. Je viens de commencer avec ASP.NET et MS SQL server, de sorte que je ne sais pas comment faire. Aussi, j'ai besoin pour terminer d'autres "animaux" et les relations ne sont pas essentiels à ce moment @aria
Utilisation rejoindre parce que "id_contact" est liée.
OriginalL'auteur jureispro | 2014-12-27
Vous devez vous connecter pour publier un commentaire.
J'ai testé cela sur votre modèle cela fonctionne:
J'essayais de résoudre cela en une seule étape, sinon, ajouter cet après test1 il fonctionne correctement:
Si vous établir la relation entre eux, il sera résolu et ce code sera de retour tous les contacts que vous le souhaitez:
1 - Créer Un Nouveau Diagramme
2 - Ajouter ces tables, puis faites Glisser Contact id 'id_contact' de chaque e-Mail,et la Balise de téléphone
3 - Enregistrer le diagramme de Sql Server
4 - Recréer votre Modèle dans Visual Studio
pour chaque contact, il obtiendra tous les courriels,les téléphones et les balises simplement par la relation.
Oui, parce que de la rejoindre et de relation, voir mise à jour.
J'ai essayé ton code et j'ai ajouté des clés Étrangères des tables, mais je n'ai pas toutes les données à partir de Téléphones/Tags ou les e-Mails des tables...
Êtes-vous sûr? Je viens de mettre à jour ma réponse.
Merci @aria. J'ai ajouté ton code fonctionne bien, mais avec un problème. Il n'affiche qu'un seul résultat. J'ai besoin de toutes les données de contact de la table.
OriginalL'auteur Aria
Vous êtes reliant x.id c.id. Je pense que vous avez besoin de lien x.id_contact c.id. (même problème pour téléphone & tag)
À en juger par les "téléphones", de "e-mails" et "tags" propriétés de la sélection, je pense que vous attendez 1 enregistrement par contact. Vous pouvez réaliser cela avec un groupe par:
Vous avez raison. C'est l'inverse. Édité répondre.
Je vous remercie pour l'aide. J'ai utilisé le code à jour, mais je suis arriver mêmes lignes (4 lignes avec les mêmes données).
4 lignes, mais avec les différentes infos de contact sans doute... j'ai mis à jour ma réponse à ces résultats par contact.
J'ai 4 lignes avec les mêmes données de Contacts et de date différente dans chaque tableau de données qui est à l'intérieur des tableaux comme les Emails, Téléphones ou des Étiquettes. Est-il moyen de résultat du groupe à partir des e-Mails/Téléphones/Tags dans le tableau et de mettre ce tableau à la liste de contacts?
OriginalL'auteur Tim Eeckhaut
Si la clé externe est les contacts dans tous les autres tableaux, le code suivant fonctionne en C# - EntityFramework6 - MVC5 :
Entity Framework Documentation :
OriginalL'auteur zokaee hamid