Ich habe diese Abfragen LINQ:So verwenden Objekte anstelle von anonymen Typen
var type1 = (from ftr in db.TB_FTR
join mst in db.TB_MST on ftr.MST_ID equals mst.MST_ID
join trf in db.TYPE_ID on mst.TYPE_ID equals trf.ID
where ftr.CITY == city && ftr.COUNTY == county
select new MyType { City = ftr.CITY, County = ftr.COUNTY Type = trf.TYPE }
).OrderBy(i => i.City);
var type2 = type1.GroupBy(i => new { i.City, i.County, i.Type })
.Select(group => new { Name = group.Key, MyCount = group.Count() })
.OrderBy(x => x.Name).ThenByDescending(x => x.MyCount)
.GroupBy(g => new { g.Name.City, g.Name.County })
.Select(g => g.Select(g2 =>
new { Name = new { g.Key.City, g.Key.County, g2.Name.Type }, g2.MyCount })).Take(1000).ToList();
Wie Sie die zweite Abfrage sehen einen anonymen Typ zurückgibt. Aber ich möchte diese Abfragen in einer Methode verwenden. Daher kann ich den anonymen Typ nicht zurückgeben. Wie kann ich Typ2 als nicht anonymen Typ festlegen?
Ich habe zwei Objekte darauf vorbereitet:
public class MyType
{
public string City { get; set; }
public string County { get; set; }
public string Type { get; set; }
}
public class ProcessedType
{
public MyType Name {get; set;}
public int MyCount {get; set;}
}
Aber ich konnte sie nicht richtig benutzen, weil ich sie wahrscheinlich in der Abfrage fehl am Platze. Können Sie mir helfen, damit ich die zweite Abfrage ein definiertes Objekt zurückgeben kann? Vielen Dank.