Ich versuche, die Daten aus der Datenbank mithilfe der Dynamic Linq Library NeGet zu erfassen . Wenn ich es durchlaufe, wird dieser Fehler angezeigt: "Das Element mit der Identität" Vorname "ist bereits in der Metadatensammlung vorhanden"
Es scheint, als ob Dynamic Linq Library NuGet keine doppelten Alias-Spaltennamen verarbeiten kann.
Ich habe zwei Tabellen und sie hat die folgende Eins-zu-Viele-Beziehung, die dieselben Spaltennamen in der Lead-Tabelle und der CoBorrower-Tabelle enthält.
Tabelle 1: Blei
Spalten: LeadID, Vorname, DateCreated
Tabelle 2: CoBorrower
Spalten: LeadID, CoBorrowerID, Vorname, Steuer, Erstellungsdatum
Hier ist mein Code-Snippet
var res = (from l in db.Leads
join db.CoBorrower.GetAll()
on l.LeadID equals cb.LeadID
select new { l, cb }).AsQueryable();
string myCustomCondition="FistName=myname";
IQueryable iq = res.Where(myCustomCondition)
.OrderBy(reportBulder.Group1)
.Select("new(l.LeadID,l.FirstName,cb.FistName)")
.GroupBy("LeadID", "it")
.Select("new (it.Key as Key, it as Value)");
foreach (dynamic group in iq)
{
string Key = group.Key.ToString();
List<dynamic> items = new List<dynamic>();
foreach (dynamic album in group.Value)
{
items.Add(album);
}
dataList.Add(Key, items);
}
Ich werde Ihre Hilfe im Voraus schätzen.
Das ist logisch. Die .Select("new(l.LeadID,l.FirstName,cb.FistName)")
erstellt ein anonymes Objekt wie:
new
{
LeadID = ....,
FirstName = ....,
FirstName = ....,
}
das ist illegal (zwei Eigenschaften mit dem gleichen Namen)
Verwenden Sie das as
.Select("new(l.LeadID,l.FirstName,cb.FistName as FirstName2)")
so dass das anonyme Objekt erstellt wird
new
{
LeadID = ....,
FirstName = ....,
FirstName2 = ....,
}
wie im zweiten .Select
.