MVC4와 엔터티 프레임 워크를 사용하고 있습니다. UserController라는 ApiController를 사용하여 사용자의 속성을 기반으로 사용자를 쿼리하고 싶습니다. 내 사용자 엔티티는 이름, 전화 번호, 주소 (복합 유형)와 같은 속성을 가지고 있으며이 데이터를 기반으로 사용자를 쿼리하고 검색 할 수 있어야합니다. 그러나 사용자는 암호, lastsync 등과 같은 속성을 가지고있어서 표시하고 싶지 않습니다. 현재 솔루션이 없습니다. 다음은 나에게 사용자를 제공하지만 모든 엔티티와 함께 표시하고 싶지 않은 사용자도 제공합니다. MVC4 API 컨트롤러에서 Asberyable <EntityBase>을 DbSet <Entity>으로 어떻게 반환 할 수 있습니까?
public class UserController : BaseApiController
{
public IQueryable<User> Get()
{
// _db is my entity framework DbContext
return _db.Users;
}
}
은 내가 ApiUser 클래스에 모든 "공개적으로"눈에 보이는 속성을 이동하고 사용자가 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
당신은 내가 필요한 것을 달성 할 수있는 방법을 알고 있나요 :
public class UserController : BaseApiController
{
public IQueryable<ApiUser> Get()
{
return _db.Users.AsQueryable<ApiUser>();
}
}
이 불행하게도 나는 다음과 같은 예외가 작동하지 않는 이유는 무엇입니까?