C# 在参数丢失数据中传递的实体对象附加的DbContext

C# 在参数丢失数据中传递的实体对象附加的DbContext,c#,asp.net-mvc,linq,entity-framework,C#,Asp.net Mvc,Linq,Entity Framework,我有一个神秘的问题 我使用LINQtoEntities来获取用户配置文件,并将结果对象发送给函数,用MVC模型数据填充它 using (var db = new DatabaseEntities()) { try { var user = db.Users.Single(u => u.Id == accorJobPrincipal.Id); //At the point, user.CreatedAt contains the right d

我有一个神秘的问题

我使用LINQtoEntities来获取用户配置文件,并将结果对象发送给函数,用MVC模型数据填充它

using (var db = new DatabaseEntities())
{
    try
    {
        var user = db.Users.Single(u => u.Id == accorJobPrincipal.Id);
        //At the point, user.CreatedAt contains the right date
        user = model.GetBaseObject(user);
        //At the point, user.CreatedAt is equal to DateTime.MinValue (0001/01/01)

        user.UpdatedAt = DateTime.Now;

        db.SaveChanges(); //Here, I have an exception due to Overflow in SQL Datetime convert
    }
    catch (Exception ex)
    {
        ModelState.AddModelError(string.Empty, "A system error occured, please try later.");
    }
}
为什么实体对象作为参数传递时会丢失数据


编辑请在此处找到GetBaseObject()的代码


很抱歉,我发现发布代码时出现noob错误:-(

我在GetBaseObject()期间重写了日期的值

在这里发布代码非常有用^^您可以很好地看到错误。比我每次使用的Visual Studio:-p更好


感谢您的参与

您的SQL Server日期时间设置可能与您的.NET环境不同。例如,一个是我们,一个是UK。GetBaseObject做什么?快速搜索网络不会给我任何帮助。请下次提供“GetBaseObject”功能的代码。
public override Users GetBaseObject(Users objectFromContext = default(Users))
    {
        var returnUser = objectFromContext ?? new Users();

        returnUser.FirstName = FirstName;
        returnUser.LastName = LastName;
        returnUser.IdTitle = IdTitle;
        returnUser.CreatedAt = CreatedAt;
        returnUser.UpdatedAt = UpdatedAt;
        returnUser.DeletedAt = DeletedAt;
        returnUser.LastConnectionAt = LastConnectionAt;
        returnUser.Enabled = Enabled;
        returnUser.Email = Email;
        returnUser.NTLogin = NTLogin;
        returnUser.Login = Login;
        returnUser.Password = Password;
        returnUser.PasswordAttemptFailCount = PasswordAttemptFailCount;

        return returnUser;
    }