Asp.net mvc Asp.NETWebAPI获取结果
我在ASP.NETWebAPI项目中有以下控制器。 模型由实体框架生成Asp.net mvc Asp.NETWebAPI获取结果,asp.net-mvc,entity-framework,asp.net-web-api,Asp.net Mvc,Entity Framework,Asp.net Web Api,我在ASP.NETWebAPI项目中有以下控制器。 模型由实体框架生成 public class CategoriesController : ApiController { private eLearningDbEntities context = new eLearningDbEntities(); // GET api/Categories public IEnumerable<Categories> GetCate
public class CategoriesController : ApiController
{
private eLearningDbEntities context = new eLearningDbEntities();
// GET api/Categories
public IEnumerable<Categories> GetCategories()
{
var query = from c in context.Categories
select c;
return query;
}
}
公共类分类控制器:ApiController
{
private eLearningDbEntities上下文=新建eLearningDbEntities();
//获取api/类别
公共IEnumerable GetCategories()
{
var query=来自context.Categories中的c
选择c;
返回查询;
}
}
从浏览器调用控制器时,我得到以下结果,但我只想获得模型的属性,而不是所有上下文属性。你知道怎么了吗
<ArrayOfCategories xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/eLearning.DomainModel">
<Categories xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" z:Id="i1">
<EntityKey xmlns:d3p1="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" z:Id="i2">
<d3p1:EntityContainerName>eLearningDbEntities</d3p1:EntityContainerName>
<d3p1:EntityKeyValues>
<d3p1:EntityKeyMember>
<d3p1:Key>ID</d3p1:Key>
<d3p1:Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:int">1</d3p1:Value>
</d3p1:EntityKeyMember>
</d3p1:EntityKeyValues>
<d3p1:EntitySetName>Categories</d3p1:EntitySetName>
</EntityKey>
<ID>1</ID>
<Name>e-Business</Name>
</Categories>
<Categories xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" z:Id="i3">
<EntityKey xmlns:d3p1="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" z:Id="i4">
<d3p1:EntityContainerName>eLearningDbEntities</d3p1:EntityContainerName>
<d3p1:EntityKeyValues>
<d3p1:EntityKeyMember>
<d3p1:Key>ID</d3p1:Key>
<d3p1:Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:int">2</d3p1:Value>
</d3p1:EntityKeyMember>
</d3p1:EntityKeyValues>
<d3p1:EntitySetName>Categories</d3p1:EntitySetName>
</EntityKey>
<ID>2</ID>
<Name>SADE</Name>
</Categories>
</ArrayOfCategories>
在线学习数据库实体
身份证件
1.
类别
1.
电子商务
在线学习数据库实体
身份证件
2.
类别
2.
赛德
谢谢大家! 您不应该直接传回您的数据库实体,而是创建一个可以传回的视图模型,该模型将消息仅隔离到您关心在客户端接收的字段。e、 g
// Create a View Model to hold appropriate properties
public class MyViewModel
{
public string PropertyA {get; set;}
public string PropertyB {get; set;}
}
...
// Map your entity to the View Model and return it.
var viewModel = context.Categories.Select(
e=>new MyViewModel(){
PropertyA = e.SomeProperty,
PropertyB = e.AnotherProperty
});
return viewModel;
这是因为我首先使用了实体框架数据库吗?如果我首先使用实体框架代码,我会得到预期的结果。