Entity Framework/LINQ: choix des colonnes à partir de plusieurs tables?
Modèles:
public class User
{
[Key]
public int UserId { get; set; }
public string UserName { get; set; }
}
public class Resource
{
[Key]
public int ResourceId { get; set; }
public string ResourceName { get; set; }
public string ResourceDescription { get; set; }
}
public class UserResource
{
[Key, Column(Order=0)]
public int UserId { get; set; }
[Key, Column(Order=1)]
public int ResourceId { get; set; }
public int ResourceQuantity { get; set; }
}
Je veux sélectionner "ResourceName" à partir de la Ressource de modèle et de "ResourceQuantity" de UserResource modèle de la "UserId". Aussi, une fois sélectionné, ai-je besoin d'un tout nouveau modèle à porter seuls ces deux colonnes spécifiées?
Également noter que UserResource modèle a une clé composite, donc je suis confus quant à la façon de faire la jointure... Est-ce exact?
var userResources =
from r in imDB.Resources
join ur in imDB.UserResources
on r.ResourceId equals ur.ResourceId
select new { r.ResourceName, ur.ResourceQuantity };
pouvez-vous expliquer votre scénario d'entreprise peu plus ? Si vous avez besoin d'utiliser de clé composite (comme une jonction modèle) quand vous devez avoir M:M relation.Qu'est-ce que votre autre modèle qui, ayant beaucoup de relations ?
Bonjour, mon modèle est très simple Utilisateur appelé. Le UserResource modèle rejoint l'Utilisateur et les modèles de Ressources. J'ai mis à jour les modèles.
pensez-vous avoir le premier code ou quoi ? Qui EF version que vous utilisez ?
oui le Premier Code, et plus tard EF (5)
Bonjour, mon modèle est très simple Utilisateur appelé. Le UserResource modèle rejoint l'Utilisateur et les modèles de Ressources. J'ai mis à jour les modèles.
pensez-vous avoir le premier code ou quoi ? Qui EF version que vous utilisez ?
oui le Premier Code, et plus tard EF (5)
OriginalL'auteur Deniz | 2013-02-09
Vous devez vous connecter pour publier un commentaire.
D'où vous êtes à l'aide de
Code first
vous pouvez créer vos modèles sont en tant que ci-dessous en utilisantEF conventions.
Puis EF va générer votre
junction table
est commeUsersResources.
Vous n'avez pas besoin de créer d'autres modèle que vous avez fait.EF va s'occuper de ça.Mise à JOUR
Vous pouvez essayer quelque chose comme ci-dessous:
Méthode 1 : Méthode basée sur la syntaxe
Méthode 2 : de Requête de base de la syntaxe
J'espère que cela va vous aider.
Cette solution rend ResourceQuantity une partie d'une ressource. Je pense que c'est mal..
pourriez-vous expliquer la relation entre "utilisateur" et "ResourceQuantity" ? est que 1:M:M ?
Un utilisateur peut avoir plusieurs ressources différentes (par différents resourceId). Un utilisateur peut avoir une variation de la quantité de chaque type de ressource (Indiqué par la ResourceQuantity colonne).
oui.Je sens que je suis de droite.De sorte que Vous pouvez vous débarrasser de "UserResource" modèle.Essayez ceci et laissez-moi savoir si vous rencontrez des problèmes ?
OriginalL'auteur Sampath