C# 在参数丢失数据中传递的实体对象附加的DbContext
我有一个神秘的问题 我使用LINQtoEntities来获取用户配置文件,并将结果对象发送给函数,用MVC模型数据填充它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
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;
}