0
当我测试(使用Fiddler Web Debugger)插入或通过web api将数据发布到省时,数据通常插入到数据库中,但是当我访问GetAll Web API服务的国家将返回NULL:Asp.net web api GetAll在执行POST后返回NULL
http://localhost:51372/api/province/
但之后,我做从我的VS 2013点快速重建解决方案对于网络版,然后再次访问来自网页API的GETALL服务我的国家是返回值:
我怎么能得到国家正在返回值后我做POST数据?
这是详细的代码,我使用
型号:
public class Province
{
public int ProvinceId { get; set; }
[Required]
public string ProvinceName { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
//Foreign Key
[ForeignKey("Country")]
public int CountryId { get; set; }
//virtual
public virtual Country Country { get; set; }
}
public class Country
{
[ScaffoldColumn(false)]
public int CountryId { get; set; }
[Required]
[Index(IsUnique=true)]
[MaxLength(200)]
public string CountryName { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
}
库:
private SelsContext db = new SelsContext();
//get all provinces
public IEnumerable<Province> GetAllProvince()
{
IEnumerable<Province> provinces = from c in db.Provinces select c;
return provinces;
}
//post provinces
public Models.Province Add(Models.Province item)
{
item.CreatedAt = DateTime.Now;
item.UpdatedAt = DateTime.Now;
db.Provinces.Add(item);
db.SaveChanges();
return item;
}
控制器:
// GET api/province
[Queryable]
public IQueryable<Province> Get()
{
return repository.GetAllProvince().AsQueryable();
}
// POST api/province
public HttpResponseMessage Post([FromBody]Province value)
{
repository.Add(value);
var response = Request.CreateResponse<Province>(HttpStatusCode.Created, value);
string uri = Url.Link("DefaultApi", new { id = value.ProvinceId });
response.Headers.Location = new Uri(uri);
return response;
}
编辑: 我已经尝试过Ø远
在仓库:
public IEnumerable<Province> GetAllProvince()
{
IEnumerable<Province> provinces = db.Provinces.Include("Country");
return provinces;
}
然后
public IEnumerable<Province> GetAllProvince()
{
IEnumerable<Province> provinces = db.Provinces.SqlQuery("select * from dbo.Provinces left join dbo.Countries on dbo.Countries.CountryId=dbo.Provinces.CountryId");
return provinces;
}
,但得到了同样的结果。
任何帮助将大大优于。
我已经试过了,但还是同样的结果之前,任何想法? – 2014-09-01 05:49:11
当我在一个新的项目中再次尝试你的方式时,只需要两张桌子,我发现它像一个魅力一样工作。谢谢 – 2014-09-02 11:29:55