给定以下两个模型:
public class Card
{
public int CardId { get; set; }
public Media Media { get; set; }
}
public class Media
{
public int MediaId { get; set; }
[Required]
public string FileName { get; set; }
}
以及以下控制器方法:
[HttpPost]
public ActionResult Create(Card card)
{
db.Media.Attach(card.Media);
ModelState.Remove("Media.FileName");
if (ModelState.IsValid)
{
db.Cards.Add(card);
db.SaveChanges();
}
return JsonNetSerializedResult(card);
}
我想创建一个新卡,但将它与现有的媒体对象相关联。我发布到“控制器/创建”并包含一个“Media.MediaId”参数,其中包含现有媒体记录的 ID,并让 EF 进行关联。
但是,在调用 SaveChanges() 之后,在 Card 实例上更新的唯一属性是 CardId。我还需要检索 Media.FileName 并在 Card 实例上设置该属性。
有没有一种通用的方法告诉 EF 我要返回更新后的 Card 数据,并返回提交数据的关联媒体数据?