我有以下内容:
// Day Class
public class Day {
[Key]
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("playlists")]
public virtual List < Playlist > playlists { get; set; }
}
// Schedule Class
public class Schedule {
[Key]
public int id { get; set; }
public virtual List < Day > days { get; set; }
[Required]
public string hash { get; set; }
}
// Playlist Class
public class Playlist {
[Key]
public int id { get; set; }
[Required]
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("media")]
public virtual List < Media > media { get; set; }
// Media class
public class Media {
...
}
我使用Web API,SQL / EF在上面的类上创建CRUD操作。
但是,我的问题是,当我发布到/schedules/
时,我希望更新所有相关属性。我正在POST一个原始的JSON对象,我可以正确地解析它。问题是,如果我在数据库中有media
密钥unique
或数据库中的任何其他对象的hash
对象,则POST失败并出现密钥重复异常,因为它正在尝试重新添加对象。我想更新那个场景中的关系......我应该怎么做才能纠正这个问题?
请询问您是否需要任何其他信息。 提前谢谢。
[ResponseType(typeof(Schedule))]
public async Task<IHttpActionResult> PostSchedule([FromBody]Object model)
{
var jsonSchedule = model.ToString();
try
{
var _schedule = JsonConvert.DeserializeObject<Schedule>(jsonSchedule);
db.Schedules.Add(_schedule);
await db.SaveChangesAsync();
return Ok();
}