在我的模型中,Account
我有一个像这样的属性
public List<String> Roles { get; set; }
稍后我想获取该属性但将其转换IList<IApplicationUserRole<Role>>
,所以我有此功能
public IList<IApplicationUserRole<Role>> Roles
{
get
{
return _account.Roles; // how do I convert this in the specific type intended.
}
}
这是我的IApplicationUserRole
public interface IApplicationUserRole<TRoleModel> : IRole<string>
where TRoleModel : EntityModel
{
TRoleModel Role { get; set; }
String Name { get; set; }
}
我是这个东西的新手。期待任何帮助。
假设您的实现类如下:
public class ApplicationUserRole : IApplicationUserRole<T> where T : Role
{
public ApplicationUserRole()
{
}
public User User { get; set; }
public T Role { get; set; }
}
然后,您将执行以下操作:
public IList<IApplicationUserRole<Role>> Roles
{
get
{
return _account.Roles
.Select(r => new ApplicationUserRole { Role = roleService.FindRoleByName(r) })
.Cast<IApplicationUserRole<Role>>()
.ToList();
}
}
从角色名称roleService
构建Role
实例的方式在哪里(上面是r
)
注意:这么说,上面的实现有一个陷阱。由于Roles
是属性,因此不应执行数据访问操作。因此,在这种情况下,您应该创建一个方法而不是一个属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句