首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

MVC更新数据库的有关问题

2013-03-01 
求助:MVC更新数据库的问题我在使用MVC构建网站时,使用EntityFramework将数据库表生成相应的View与Controll

求助:MVC更新数据库的问题
我在使用MVC构建网站时,使用EntityFramework将数据库表生成相应的View与Controller
    [EdmEntityTypeAttribute(NamespaceName="WebSiteModel", Name="Manager")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Manager : EntityObject
    {
        #region Factory Method
    
        /// <summary>
        /// Create a new Manager object.
        /// </summary>
        public static Manager CreateManager(global::System.String userID, global::System.String passwd, global::System.String remark)
        {
            Manager manager = new Manager();
            manager.UserID = userID;
            manager.Passwd = passwd;
            manager.Remark = remark;
            return manager;
        }

        #endregion
        #region Primitive Properties
    
        /// <summary>
        /// No Metadata Documentation available.
        /// </summary>
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String UserID
        {
            get
            {
                return _UserID;
            }
            set
            {
                OnUserIDChanging(value);
                ReportPropertyChanging("UserID");
                _UserID = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("UserID");
                OnUserIDChanged();
            }
        }
        private global::System.String _UserID;
        partial void OnUserIDChanging(global::System.String value);


        partial void OnUserIDChanged();
    
        
    
        /// <summary>
        /// No Metadata Documentation available.
        /// </summary>
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Remark
        {
            get
            {
                return _Remark;
            }
            set
            {
                OnRemarkChanging(value);
                ReportPropertyChanging("Remark");
                _Remark = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Remark");
                OnRemarkChanged();
            }
        }
        private global::System.String _Remark;
        partial void OnRemarkChanging(global::System.String value);
        partial void OnRemarkChanged();
    
        /// <summary>
        /// No Metadata Documentation available.
        /// </summary>
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String Passwd
        {
            get
            {
                return _Passwd;
            }
            set
            {
                OnPasswdChanging(value);
                ReportPropertyChanging("Passwd");
                _Passwd = StructuralObject.SetValidValue(value, false);


                ReportPropertyChanged("Passwd");
                OnPasswdChanged();
            }
        }
        private global::System.String _Passwd;
        partial void OnPasswdChanging(global::System.String value);
        partial void OnPasswdChanged();

        #endregion
    
    }

        [HttpPost]
        public ActionResult Edit(Manager manager)
        {
            if (ModelState.IsValid)
            {
                db.Manager.Attach(manager);
                db.ObjectStateManager.ChangeObjectState(manager, EntityState.Modified);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(manager);
        }

我在修改Remark字段时,总是提示Passwd不能为空,即使我把数据库里这个字段设为可空,提交后Passwd真为NULL了,有些不解,我如何只修改Remark字段而不修改Passwd?Manager是什么时候把Form的值都获取过来并赋值?当然我可以直接一个字段一个字段的赋值再做更新,可如果我的N个字段的话,一个个赋不是挺麻烦,我看EntityFramework挺好,直接生成代码就可进行增、删、改、查的工作,但成生的代码就那么几行,我应该怎么修改以使其灵活运用呢?

[解决办法]
EntityFramework可以逐字段更新吗?
先把对象取出来 在赋值 在更新。

热点排行