Frage

Ich bin mit .NET RIA Services Juli Vorschau zwischen meinem Silverlight-Client und meine Server zu kommunizieren. Auf meinem Server habe ich ein ASP.NET-Projekt die Silverlight-Anwendung hosten. In der ASP.NET-Anwendung habe ich ein Linq-to-Sql Datenmodell mit einer Tabelle namens Hour. Ich habe die Stunden-Einheit mit 3 Eigenschaften erweitert durch Hour.shared.cs erstellen:

public partial class Hour
{
   public string CustomerName { get; set; }
   public string ProjectName { get; set; }
   public string FullProjectName { get { return this.CustomerName + " - " + this.ProjectName; } }
}

In meiner Domain habe ich eine get-Methode namens getHours. Aufgrund der Konstruktion in Linq, kann ich eine neue Instanz der Stunde Einheit nicht explizit erstellen und durch die neue Einheit setzte die Werte meiner neuen Eigenschaften:

var query = from hours in this.Context.Hours
            select new Hour()
            {
               HourID = hours.HourID,
               ProjectName = "Hello World"
            };

Wenn ich nur wählen Stunden funktioniert es ganz gut, aber ich brauche den Projektnamen und Kundennamen, wie einige setzen.

Alle Ideen, wie dies zu umgehen?

War es hilfreich?

Lösung

Der Versuch, meine Antwort wieder, das letzte Mal fror SO auf mich.

Wahrscheinlich der einfachste Weg, dies zu tun wäre eine Funktion werden:

public Hour PopulateHour(Hour hour)
{
  hour.CompanyName = "xyz";
  hour.ProjectName = "123";
  return hour;
}

Dann können Sie diese in Ihrer Linq-Abfrage verwenden:

var query = from hour in this.Context.Hours
            select PopulateHour(hour);

Eine Sache, die dies wäre einfacher machen würde, wenn Sie bereits die CompanyID und projectID als Eigenschaften in der Stunde Klasse haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top