实体框架 - 设置" Nullable"整数为null

时间:2015-08-27 06:34:05

标签: c# entity-framework wcf

我的数据库中有一个名为Login的表。在这个表中,我有一个名为Head_ID的属性,它可以为空。

基本上,你可以有一个酋长,或者你是首席。如果您是首席,Head_ID应该为空。在我的申请中,我有可能改变一个人的首席(Coworker变更首席,首席被降级,并且在他之上获得首席执行官),但是这个int不会被设置为< / p>

Service.cs

public int EditLogin(LoginDTO login)
    {
        try
        {
            var dbLogin = DAO.HourRegInstance.Login.Single(x => x.ID == login.Id);
            dbLogin.Name = login.Name;
            dbLogin.Username = login.Username;
            if (login.Head_Id == 0)
            {
                //Doesn't work
                dbLogin.Head_ID = null;
            }
            dbLogin.Role_ID = login.Role_Id;
            DAO.HourRegInstance.SaveChanges();
            return 1;
        } catch(Exception e){
            return -1;
        }
    }

Login.cs

public partial class Login
{
    public Login()
    {
        this.HourRegistrationConfirmed = new HashSet<HourRegistrationConfirmed>();
        this.HourRegistrationConfirmed1 = new HashSet<HourRegistrationConfirmed>();
        this.Login1 = new HashSet<Login>();
        this.LoginProject = new HashSet<LoginProject>();
    }

    public long ID { get; set; }
    public string Name { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public long Role_ID { get; set; }
    public Nullable<long> Head_ID { get; set; }

    public virtual ICollection<HourRegistrationConfirmed> HourRegistrationConfirmed { get; set; }
    public virtual ICollection<HourRegistrationConfirmed> HourRegistrationConfirmed1 { get; set; }
    public virtual ICollection<Login> Login1 { get; set; }
    public virtual Login Login2 { get; set; }
    public virtual Role Role { get; set; }
    public virtual ICollection<LoginProject> LoginProject { get; set; }
}

如何完成这项任务?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

我不确定导致此问题的原因,但重新启动服务后,现在一切似乎都正常。也许只是实体框架是实体框架?