动态 Linq 库无法处理重复的别名列名
Dynamic Linq Library can’t handling duplicate alias column names
我正在尝试使用动态 Linq 库从数据库中收集数据 NeGet。当我遍历它时显示此错误“标识为 'FirstName' 的项目已存在于元数据集合中”
似乎动态 Linq 库 NuGet 无法处理重复的别名列名。
我有两个 table,它具有如下一对多关系,在 Lead table 和 CoBorrower table.[=14= 中包含相同的列名称]
表 1:领先
列:LeadID、名字、创建日期
表 2:共同借款人
列:LeadID、CoBorrowerID、FirstName、Tax、DateCreated
这是我的代码片段
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);
}
我会提前感谢你的帮助。
这是合乎逻辑的。 .Select("new(l.LeadID,l.FirstName,cb.FistName)")
将创建一个匿名对象,如:
new
{
LeadID = ....,
FirstName = ....,
FirstName = ....,
}
这是非法的(两个属性同名)
使用 as
.Select("new(l.LeadID,l.FirstName,cb.FistName as FirstName2)")
这样创建的匿名对象就是
new
{
LeadID = ....,
FirstName = ....,
FirstName2 = ....,
}
就像你在第二个 .Select
中所做的那样。
我正在尝试使用动态 Linq 库从数据库中收集数据 NeGet。当我遍历它时显示此错误“标识为 'FirstName' 的项目已存在于元数据集合中”
似乎动态 Linq 库 NuGet 无法处理重复的别名列名。
我有两个 table,它具有如下一对多关系,在 Lead table 和 CoBorrower table.[=14= 中包含相同的列名称]
表 1:领先
列:LeadID、名字、创建日期
表 2:共同借款人
列:LeadID、CoBorrowerID、FirstName、Tax、DateCreated
这是我的代码片段
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);
}
我会提前感谢你的帮助。
这是合乎逻辑的。 .Select("new(l.LeadID,l.FirstName,cb.FistName)")
将创建一个匿名对象,如:
new
{
LeadID = ....,
FirstName = ....,
FirstName = ....,
}
这是非法的(两个属性同名)
使用 as
.Select("new(l.LeadID,l.FirstName,cb.FistName as FirstName2)")
这样创建的匿名对象就是
new
{
LeadID = ....,
FirstName = ....,
FirstName2 = ....,
}
就像你在第二个 .Select
中所做的那样。