繁体   English   中英

实体框架使用DateTime保存返回错误

[英]Entity Framework Save returning error with DateTime

在尝试保存具有DateTime数据类型属性的实体时,我对EF 6有一个奇怪的问题。

我有一个表单,用户输入所需的值到实体的属性,但是,因为我不需要通过前端指定所有它们在保存之前设置了几个项目。

所以,这是我的模型:

public partial class delivery_deviation
{
    public int delivery_deviation_id { get; set; }
    public System.Guid customer_id { get; set; }
    public byte week_nr { get; set; }
    public short year { get; set; }
    public System.DateTime created_date { get; set; }
    public System.Guid created_user { get; set; }

    public virtual sf_ec_customer sf_ec_customer { get; set; }
}

这是我的控制器中的操作:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "delivery_deviation_id,customer_id,week_nr,year")] delivery_deviation dd)
    {
        var identity = ClaimsManager.GetCurrentIdentity();
        var userId = identity.UserId;

        dd.created_user = userId;
        dd.created_date = DateTime.Now;

        if (ModelState.IsValid)
        {
            db.delivery_deviation.Add(dd);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.customer_id = new SelectList(db.sf_ec_customer, "id", "profile_provider", dd.customer_id);
        return View(dd);
    }

我可以清楚地看到created_date值不为null(请参见屏幕截图)但是在保存时我总是会遇到以下InnerException消息的InnerException

无法将值NULL插入列'created_date',表'CMS_DEV.dbo.delivery_deviation'; 列不允许空值。 INSERT失败。 该语句已终止。

对象细节

另外,这是我的表的截图:

在此输入图像描述

那么,我的代码有什么问题? 我或办公室里的任何人都没有看到这个代码有什么问题。

谢谢你,最诚挚的问候

编辑

这是我注意到对象签名不同的另一个截图,但我认为这是正常的:

异常对象列表

所以问题在于,出于某种原因,当从现有数据库生成代码优先时,并非所有映射都正确完成。

created_date将属性StoreGeneratedPattern设置为Computed 我所做的就是在edmx文件中将其设置为None

粉扑,问题解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM