1
我必须在Azure SQL数据库中具有一对多关系的表。具有一对多关系的Azure GET操作
--Countries
create table Countries
(
ID int not null primary key clustered identity,
Name varchar(100) not null
)
--Cities
create table Cities
(
ID int not null primary key clustered identity,
Name varchar(100) not null,
CountryID int not null foreign key references Countries(ID) on delete cascade
)
我已经使用实体框架数据库第一个模型创建了Web API。生成的类看起来如下:
Country.cs
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Country()
{
this.Cities = new HashSet<City>();
}
public int ID { get; set; }
public string Name { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<City> Cities { get; set; }
City.cs
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public City()
{
}
public int ID { get; set; }
public string Name { get; set; }
public int CountryID { get; set; }
public virtual Country Country { get; set; }
CitiesController.cs
private TripperDBEntities db = new TripperDBEntities();
// GET: api/Cities
public IQueryable<City> GetCities()
{
return db.Cities;
}
// POST: api/Countries
[ResponseType(typeof(Country))]
public async Task<IHttpActionResult> PostCountry(Country country)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Countries.Add(country);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = country.ID }, country);
}
调用get国家或GET城市返回
500内部服务器错误
500(通常)的HTTP响应代码表示处理请求时发生异常。您需要检查您的服务器端日志并找出异常情况。从那里可能会清楚问题是什么。 –
查看get操作的代码也很方便。 –
我在我的问题中添加了get和put操作。我认为我的代码需要更新才能跟踪服务器端日志。 – bojo