我有这样的模型:
public class Quotation
{
public System.Guid Id { get; set; }
public string Code { get; set; }
public DateTime Date { get; set; }
}
public class QuotationDetails
{
public System.Guid Id { get; set; }
public System.Guid QuotationId { get; set; }
public virtual Quotation Quotation { get; set; }
public virtual string quotationCode => Quotation.Code;
public virtual DateTime quotationDate => Quotation.Date; \\ <== This return error
public System.Guid MasterPriceUnitId { get; set; }
public virtual MasterPriceUnit MasterPriceUnit { get; set; }
public virtual string masterPriceUnitCode => MasterPriceUnit.Code;
}
我保存修改的控制器是:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DetailsEdit([Bind(Include = "Id,QuotationId,MasterPriceUnitId")] QuotationDetails quotationDetails)
{
if (ModelState.IsValid)
{
db.Entry(quotationDetails).State = EntityState.Unchanged;
db.Entry(quotationDetails).Property("MasterPriceUnitId").IsModified = true;
db.SaveChanges();
return Json("success", JsonRequestBehavior.AllowGet);
}
return PartialView("_DetailsEdit", quotationDetails);
}
奇怪的是,在保存并返回错误时,它正在访问quotationDate
这是虚拟字段:
对象引用未设置为对象的实例。说明: 当前Web执行期间发生未处理的异常 请求。请查看堆栈跟踪以获取有关 错误及其在代码中的起源。
异常详细信息:System.NullReferenceException:没有对象引用 设置为对象的实例。
源错误:
第83行:
第84行:公共虚拟DateTime quotationDate => Quotation.Date;第85行:
我为我的一个插件使用了许多虚拟字段。对于许多字段来说都可以,如果我删除了quotationDate
字段,它不会返回任何错误并成功保存。