I'm trying to set up retrieval from a database.
I have an EF (Entity Framework) object emUser
and a normal class User
that inherits from emUser, but adds some extra functionality.
public class User : emUser
{
#region Properties
public string Username
{
get { return Email; }
}
public string FullName
{
get { return FirstName + " " + LastName; }
}
#endregion
}
public partial class emUser : EntityObject
{
[code ...]
}
For some reason, although User inherits from emUser I cannot explicitly convert them. The code I'm using:
List<User> returnUsers = new List<User>();
var users =
(from u in edm.UserSet.OfType<emUser>()
select u);
if (users != null)
{
foreach (emUser user in users)
{
User newUser = (User)user;
returnUsers.Add(newUser);
}
}
return returnUsers;
I could make User
a wrapper for emUser, but then I would have to change it every time I make changes to emUser. I want to use User
to differentiate between the classes used in the technical service layer and the domain layer.
I get an error message like this:
{System.InvalidCastException: Unable to cast object of type 'Services.emUser' to type 'Users.User'. at Services.DatabaseController.GetUsers() in [file path]:line 412}
Why can't I convert the emUser to a User?