Sto cercando di raccogliere i dati dal database utilizzando Dynamic Linq Library NeGet . Quando lo eseguo ciclicamente mostrando questo errore "L'elemento con identità" FirstName "esiste già nella raccolta di metadati"
Sembra che Dynamic Linq Library NuGet non sia in grado di gestire nomi di colonne alias duplicati.
Ho due tabelle e ha una relazione One-On-Many come segue, contenente gli stessi nomi di colonne nella tabella Lead e nella tabella CoBorrower.
Tabella 1: piombo
Colonne: LeadID, FirstName, DateCreated
Tabella 2: CoBorrower
Colonne: LeadID, CoBorrowerID, FirstName, Tax, DateCreated
Ecco il mio frammento di codice
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);
}
Apprezzerò il tuo aiuto in anticipo.
Questo è logico. .Select("new(l.LeadID,l.FirstName,cb.FistName)")
creerà un oggetto anonimo come:
new
{
LeadID = ....,
FirstName = ....,
FirstName = ....,
}
illegale (due proprietà con lo stesso nome)
Usa il as
.Select("new(l.LeadID,l.FirstName,cb.FistName as FirstName2)")
in modo che l'oggetto anonimo creato sia
new
{
LeadID = ....,
FirstName = ....,
FirstName2 = ....,
}
come nel secondo. .Select
.