Entity Framework/LINQ: die Auswahl von Spalten aus mehreren Tabellen?
Modelle:
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; }
}
Möchte ich wählen Sie "ResourceName" Ressourcen-Modell und "ResourceQuantity" von UserResource Modell für einen gegebenen "UserId". Auch, wenn es aktiviert ist, benötige ich ein neues Modell tragen nur die beiden angegebenen Spalten?
Beachten Sie auch, dass UserResource Modell hat einen zusammengesetzten Schlüssel, so bin ich verwirrt, wie man das verbinden... Ist das richtig?
var userResources =
from r in imDB.Resources
join ur in imDB.UserResources
on r.ResourceId equals ur.ResourceId
select new { r.ResourceName, ur.ResourceQuantity };
können Sie erklären, Ihre business-Szenario etwas mehr ? Wenn Sie müssen, verwenden Sie die composite key (als junction-Modell) wenn Sie haben, um M:M-Beziehung.Was ist Ihre andere Modell, das haben viele-Beziehung ?
Hallo, mein anderes Modell ist ein sehr einfaches User genannt. Die UserResource Modell verbindet die Benutzer-und Ressourcen-Modelle. Ich aktualisierte die Modelle.
tun, dass du den ersten code oder was ? Die EF-version Sie verwenden ?
ja, Code-Erste, und die Letzte EF (5)
Hallo, mein anderes Modell ist ein sehr einfaches User genannt. Die UserResource Modell verbindet die Benutzer-und Ressourcen-Modelle. Ich aktualisierte die Modelle.
tun, dass du den ersten code oder was ? Die EF-version Sie verwenden ?
ja, Code-Erste, und die Letzte EF (5)
InformationsquelleAutor Deniz | 2013-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Daher bist du mit
Code first
Sie Ihre Modelle erstellen können, wie unten durch die VerwendungEF conventions.
Dann EF generieren Ihren
junction table
ist alsUsersResources.
Sie brauchen nicht, um zusätzliche Modell wie du.EF wird sich nach.UPDATE
Können Sie versuchen, so etwas wie unten:
Methode 1 : Methode basierte syntax
Methode 2 : Query syntax
Ich hoffe das hilft dir.
Diese Lösung macht ResourceQuantity ein Teil einer Ressource. Ich denke, das ist falsch..
erklären Sie die Beziehung zwischen "Benutzer" und "ResourceQuantity" ? ist, 1:M oder M:M ?
Ein Benutzer kann über viele verschiedene Ressourcen (von unterschiedlichen resourceId). Ein Benutzer kann eine unterschiedliche Menge von jeder anderen Art der Ressource (Angedeutet durch die ResourceQuantity Spalte).
ja.Ich fühle, dass ich rechts bin.So können Sie loszuwerden, die "UserResource" - Modell.Versuchen Sie dies und lassen Sie mich wissen, wenn du irgendwelche Probleme ?
InformationsquelleAutor Sampath