Ich möchte eine Eigenschaftsliste einer Klasse an eine Funktion übergeben. mit in der Funktion basierend auf Eigenschaftsliste werde ich eine Abfrage generieren. Genau wie die selbe Funktionalität in der Linq Select Methode. Hier werde ich das für Ingress Database implementieren.Linq-Ausdruck an eine Funktion übergeben
Als Beispiel I
vor Ende wanna, da dies eine ausgewählte laufen,
Meine Entity-Klasse ist wie dieser
public class Customer
{
[System.Data.Linq.Mapping.ColumnAttribute(Name="Id",IsPrimaryKey=true)]
public string Id { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Name")]
public string Name { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Address")]
public string Address { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Email")]
public string Email { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Mobile")]
public string Mobile { get; set; }
}
ich so eine Select-Funktion aufrufen wollen,
var result = dataAccessService.Select<Customer>(C=>C.Name,C.Address);
dann, mit Ergebnis kann ich die Werte der Name und Adresse Eigenschaften erhalten.
Ich glaube, meine Select-Funktion soll wie folgt aussieht,
(* Ich denke, das Linq Expression durchgeführt unter Verwendung sollte. Aber im nicht sicher, was die Eingangsparametern und Typ zurück. *)
Class DataAccessService
{
// I'm not sure about this return type and input types, generic types.
public TResult Select<TSource,TResult>(Expression<Func<TSource,TResult>> selector)
{
// Here I wanna Iterate through the property list, which is passed from the caller.
// Here using the property list,
// I can get the ColumnAttribute name value and I can generate a select query.
}
}
Dies ist ein Versuch, eine Funktionalität wie in Linq zu erstellen. Aber ich bin kein Experte für Linq Expressions.
Es gibt einen Projektanruf DbLinq von MIT, aber es ist ein großes Projekt und trotzdem konnte ich nichts hilfreiches daraus machen.
Kann mir bitte jemand helfen, dies zu starten, oder kann mir jemand ein paar nützliche Quellen nennen, um darüber zu lesen.
Nicht sicher, was Sie erreichen möchten ... Möchten Sie den Namen und die Adresse aller Kunden erhalten? –
Kalin, In meiner Select-Methode möchte ich durch die angezeigte Liste der Eigenschaften iterieren. In meinem Beispiel sollte es nur Name und Adresse Eigenschaften geben. – Sency
Sie beschreiben _how_ Sie möchten etwas tun. Können Sie bitte beschreiben, warum Sie das tun wollen, das heißt, was Sie erreichen wollen? –