データベースからの取得を設定しようとしています。EF(Entity Framework)オブジェクトemUser
と、emUserから継承する通常のクラスがありUser
ますが、いくつかの機能が追加されています。
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 ...]
}
何らかの理由で、UserはemUserから継承しますが、明示的に変換することはできません。私が使用しているコード:
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;
emUserのラッパーを作成することはできUser
ますが、emUserに変更を加えるたびにラッパーを変更する必要があります。User
テクニカルサービスレイヤーとドメインレイヤーで使用されるクラスを区別するために使用したいと思います。
次のようなエラーメッセージが表示されます。
{System.InvalidCastException: Unable to cast object of type 'Services.emUser' to type 'Users.User'. at Services.DatabaseController.GetUsers() in [file path]:line 412}
emUserをUserに変換できないのはなぜですか?