我有一个IBasicData
实现IVeryBasicData
用户信息的接口(继承代码):
public interface IBasicData:IVeryBasicData
{
byte[] Password { get; set; }
string Email { get; set; }
}
public interface IVeryBasicData:IUser
{
string Name { get; set; }
string UserId { get; set; }
string Description { get; set; }
string Url { get; set; }
}
public interface IUser
{
DateTime CreationTime { get; set; }
string PartitionKey { get; set; }
string RowKey { get; set; }
}
然后我有一个GetUsers
来自 UsersDataSource 的方法,它返回一个IQueryable<IBasicData>
,我希望能够使用这个 IQueryable 作为视图的模型。@Hml.DisplayNameFor(model => model.UserId)
但是当我尝试这样做时,会出现异常:例如,在调用它们时找不到属性。
所以,我提出了这个解决方案:
foreach (var user in usersDataSource.GetUsers())
{
var addUser = new UserViewModel()
{
CreationTime = user.CreationTime,
Description = user.Description,
Email = user.Email,
Name = user.Name,
PartitionKey = user.PartitionKey,
Password = user.Password,
RowKey = user.RowKey,
Url = user.Url,
UserId = user.UserId
};
usersViewModel.Add(addUser);
}
return View(usersViewModel);
UserViewModel 是一个实现IBasicData
. 这有效,但对我来说似乎相当难看。有没有更好的方法可以将 anIQuaryable<IBasicData>
用作 View 模型?