fpoyavo
asked on
LINQ join
HI Experts,
I have this linq which is ok except one piece
myout.AddRange((from o in context.a
join od in context.b on o.t_id equals od.id
select new
{
od.id,
od.mynavigationproperty.so me_dte
}).ToList()
.Select( od => new MyInfo
{
Tid = od.id,
Timestamp = od.mynavigationproperty.so me_dte == null
? ""
: od.some_dte.Value.ToString ("yyyy/MM/ dd HH:mm tt")
}).ToArray());
in first part od.mynavigationproperty.so me_dte is ok since it get via navigation property
but in second part Timestamp = od.mynavigationproperty.so me_dte gives me error
"anonymous type does not contain definition for mynavigationproperty ......."
How do I fix it ?
Thanks.
I have this linq which is ok except one piece
myout.AddRange((from o in context.a
join od in context.b on o.t_id equals od.id
select new
{
od.id,
od.mynavigationproperty.so
}).ToList()
.Select( od => new MyInfo
{
Tid = od.id,
Timestamp = od.mynavigationproperty.so
? ""
: od.some_dte.Value.ToString
}).ToArray());
in first part od.mynavigationproperty.so
but in second part Timestamp = od.mynavigationproperty.so
"anonymous type does not contain definition for mynavigationproperty ......."
How do I fix it ?
Thanks.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Fernando,
Linq doesn't necessarily mean databases. The framework have no idea about the properties you are trying to read when it sees you projecting into an Anonymous.
Linq doesn't necessarily mean databases. The framework have no idea about the properties you are trying to read when it sees you projecting into an Anonymous.
@sammy1971;
This question is a follow up question on a query for Linq to Entities.
This question is a follow up question on a query for Linq to Entities.
ASKER
Hi guys,
I actually fixed but now I would do groupby od.id How I do that ? Thanks a lot.
myout.AddRange((from o in context.a
join od in context.b on o.t_id equals od.id
select new
{
od.id,
od.mynavigationproperty.so me_dte
}).ToList()
.Select( od => new MyInfo
{
Tid = od.id,
Timestamp = od.mynavigationproperty.so me_dte == null
? ""
: od.some_dte.Value.ToString ("yyyy/MM/ dd HH:mm tt")
}).ToArray());
I actually fixed but now I would do groupby od.id How I do that ? Thanks a lot.
myout.AddRange((from o in context.a
join od in context.b on o.t_id equals od.id
select new
{
od.id,
od.mynavigationproperty.so
}).ToList()
.Select( od => new MyInfo
{
Tid = od.id,
Timestamp = od.mynavigationproperty.so
? ""
: od.some_dte.Value.ToString
}).ToArray());
ASKER
change it to
select new REPLACE WITH YOUR CLASS NAME
{
od.id,
od.mynavigationproperty.so
}).ToList()