是否可以从我的WebAPI的IQueryable函数中排除一列?例如如何从我的人员实体中排除属性“FirstName”:
[HttpGet]
public IQueryable<Contact> GetPeople()
{
return _contextProvider.Context.People;
}
pseudocoded:
[HttpGet]
public IQueryable<Contact> GetPeople()
{
return _contextProvider.Context.People.ExcludeColumn("FirstName");
}
答案 0 :(得分:7)
将结果手动投影到Contact
实体,并且不提供FirstName
列的数据:
[HttpGet]
public IEnumerable<Contact> GetPeople()
{
return from p in _contextProvider.Context.People
select new Contact {
Id = p.Id,
LastName = p.LastName
};
}
BTW我会创建一些没有FirstName
属性的特定DTO对象。
答案 1 :(得分:1)
另一种方法是使用Runtime.Serialization.IgnoreDataMember
来装饰列。
[Runtime.Serialization.IgnoreDataMember]
public string FirstName { get; set; }