Imagine I have this class
public class Case
{
[Key]
[DataMember]
public int CaseId { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string PublicStatusName { get; set; }
}
Basically, I want to take the result set of something like this query
select c.Id, c.Title, sp.Name
from Case c
inner join StatusGrouping sg on sg.InternalStatusId = c.StatusId
inner join StatusPublic sp on sp.PublicStatusId = sg.PublicStatusId
where c.Id = 42
and put it into the class above.
I know I can make navigation properties and express foreign key relationships etc. in EF. So one (ugly) possiblity would be to just have a StatusGrouping property on the Case class. And then have a StatusPublic property on the StatusGrouping class, and then have EF hook up the hierarchy when I read my data.
But the StatusGrouping table is just a relation table that I don’t care about in this case. Also, I don’t care about the PublicStatusId, all I care about is that I want the right StatusPublic.Name mapped into my PublicStatusName in the Case class whenever I fetch a Case from the db.
This is probably basic stuff. It would be very easy in something like iBATIS (now MyBatis). I’m sure it is easy in EF as well.
Thanks in advance!
Easiest way to do that: create view in database, map entity to view.
— or —
Create query with anonymous type as result.
Either way you’ll have one-time readonly result. Which, as far as I can see, is the only application of your question.