我正在使用 MVC4 和实体框架。我想让 ApiController 称为 UserController 来根据用户的属性查询用户。我的用户实体具有姓名、电话号码、地址(复杂类型)等属性,应该可以根据这些数据查询和检索用户。但是用户也有我不想看到的密码、lastsync 等属性。目前我没有解决方案。以下为我提供了用户,但包括所有实体,以及我不想显示的实体。
public class UserController : BaseApiController
{
public IQueryable<User> Get()
{
// _db is my entity framework DbContext
return _db.Users;
}
}
我以为我会将所有“公开”可见属性移至 ApiUser 类,并使 User 从 ApiUser 派生。然后我的想法是这样做:
public class UserController : BaseApiController
{
public IQueryable<ApiUser> Get()
{
return _db.Users.AsQueryable<ApiUser>();
}
}
不幸的是,这不起作用我得到以下异常:
[InvalidOperationException: The type Repository.User was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.]
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterDelegatingEnumerable1.Write2_ApiUser(String n, String ns, ApiUser o, Boolean isNullable, Boolean needType) +171
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterDelegatingEnumerable1.Write3_ArrayOfApiUser(Object o) +297
你知道我怎样才能达到我所需要的吗?