ho due modelli:
codice:
[Table("Account")]
public class dbAccount
{
[Key]
public int AccountID { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public bool IsEnabled { get; set; }
public virtual ICollection<dbRole> Roles { get; set; }
}
[ResourceDisplayName("Account")]
public class vmAccount
{
[Key]
[ResourceDisplayName("Account.AccountID")]
public int AccountID { get; set; }
[ResourceRequired]
[ResourceDisplayName("Account.UserName")]
public string UserName { get; set; }
[ResourceRequired]
[DataType(DataType.Password)]
[ResourceDisplayName("Account.Password")]
public string Password { get; set; }
[ResourceRequired]
[ResourceEmail]
[ResourceDisplayName("Account.Email")]
public string Email { get; set; }
[ResourceRequired]
[ResourceDisplayName("Account.Name")]
public string Name { get; set; }
[ResourceDisplayName("Account.Surname")]
public string Surname { get; set; }
[ResourceDisplayName("Account.IsEnabled")]
public bool IsEnabled { get; set; }
[ResourceDisplayName("Roles")]
public virtual ICollection<vmRole> Roles { get; set; }
}
e
codice:
[Table("Role")]
public class dbRole
{
[Key]
public int RoleID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<dbAccount> Accounts { get; set; }
public virtual ICollection<dbPermission> Permissions { get; set; }
}
[ResourceDisplayName("Role")]
public class vmRole
{
[Key]
[ResourceDisplayName("Role.RoleID")]
public int RoleID { get; set; }
[ResourceDisplayName("Role.Name")]
public string Name { get; set; }
[ResourceDisplayName("Role.Description")]
public string Description { get; set; }
[ResourceDisplayName("Accounts")]
public virtual ICollection<vmAccount> Accounts { get; set; }
}
il problema esce quando devo fare un a conversione da dbAccount a vmAccount con il seguente metodo:
codice:
public static List<vmAccount> to_vmAccounts(IEnumerable<dbAccount> dbAccounts)
{
List<vmAccount> vmAccounts = new List<vmAccount>();
foreach (dbAccount dbAccount in dbAccounts)
vmAccounts.Add(to_vmAccount(dbAccount));
return vmAccounts;
}
public static vmAccount to_vmAccount(dbAccount dbAccount)
{
vmAccount vmAccount = new vmAccount()
{
AccountID = dbAccount.AccountID,
UserName = dbAccount.UserName,
Password = dbAccount.Password,
Email = dbAccount.Email,
Name = dbAccount.Name,
Surname = dbAccount.Surname,
IsEnabled = dbAccount.IsEnabled,
Roles = RoleService.to_vmRoles(dbAccount.Roles)
};
return vmAccount;
}
public static List<vmRole> to_vmRoles(IEnumerable<dbRole> dbRoles)
{
List<vmRole> vmRoles = new List<vmRole>();
foreach (dbRole dbRole in dbRoles)
vmRoles.Add(to_vmRole(dbRole));
return vmRoles;
}
public static vmRole to_vmRole(dbRole dbRole)
{
vmRole vmRole = new vmRole()
{
RoleID = dbRole.RoleID,
Name = dbRole.Name,
Description = dbRole.Description,
Accounts = AccountServices.tovmAccounts(dbRole.Accounts)
};
return vmRole;
}
L'applicazione va in OVerflow ...
Qualche soluzione???