ich eine App geschrieben habe, dass ich als Agenten verwenden, um Daten aus einer Datenbank abzufragen und diese automatisch in meinen verteilten Web-Cache geladen werden .LINQ-to-SQL: ExecuteQuery (Type, String) ein Feld auffüllt, aber nicht die andere
ich tun dies durch eine SQL-Abfrage und eine Art in einer Konfiguration angeben. Der Code, der die Abfrage tatsächlich tut, sieht wie folgt aus:
List<Object> result = null;
try { result = dc.ExecuteQuery(elementType, entry.Command).OfType<Object>().ToList(); }
catch (Exception ex) { HandleException(ex, WebCacheAgentLogEvent.DatabaseExecutionError); continue; }
elementType
ein System.Type aus dem in der Konfiguration angegebenen Typs erstellt ist (mit Type.GetType()
) und entry.Command
ist die SQL-Abfrage.
Die spezifische Entitätstyp ich mit Blicken ein Problem habe wie folgt aus:
public class FooCount
{
[Column(Name = "foo_id")]
public Int32 FooId { get; set; }
[Column(Name = "count")]
public Int32 Count { get; set; }
}
Die SQL-Abfrage wie folgt aussieht:
select foo_id as foo_id, sum(count) as [count]
from foo_aggregates
group by foo_id
order by foo_id
Aus irgendeinem Grund, wenn die Abfrage ausgeführt wird, Die Eigenschaft "Count" wird zwar gefüllt, aber nicht die Eigenschaft "FooId". Ich habe versucht, die Abfrage selbst auszuführen, und die richtigen Spaltennamen werden zurückgegeben, und die Spaltennamen stimmen mit dem überein, was ich in meinen Zuordnungsattributen angegeben habe. Hilfe!
@BFree - Bearbeiten einer Frage einfach zu ändern, jemand anderes Codierungsstil ist einfach nur unhöflich IMHO. Bitte nicht. –
Mein schlechtes. Ich hätte nicht gedacht, dass du das wirklich willst, ich dachte es wäre ein Unfall. – BFree
@Daniel - Beitragscode, der Leute dazu zwingt, nach rechts zu scrollen, um sie zu lesen, ist ein guter Weg, um sie dazu zu bringen, Ihre Frage zu ignorieren. Schimpfen bei Menschen, die versuchen wird, um eine noch bessere Möglichkeit ..... –