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

关于LinQ的更新有关问题,请问为什么不能更新

2013-07-01 
关于LinQ的更新问题,请教为什么不能更新public void NewsUpdate(r_NewsEntity newsEntity){r_NewsEntity u

关于LinQ的更新问题,请教为什么不能更新


        public void NewsUpdate(r_NewsEntity newsEntity)
        {
            r_NewsEntity updateEntity = dataBase.r_News.Single(p => p.NewsID == newsEntity.NewsID);
            updateEntity = newsEntity;
            dataBase.SubmitChanges();
        }


上面是方法,下面是实体类
更新的时候,无法更新。

[Serializable]
    [Table(Name="r_News")]
    //r_News表的实体
    public class r_NewsEntity
    {

        #region 列名
        [Column(Name = "NewsID", AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)]
        public int NewsID
        {
            get;
            set;
        }

        [Column(Name = "NewsTitle", DbType = "NVarChar(100) NOT NULL")]
        public string NewsTitle
        {
            get;
            set;
        }

        [Column(Name = "NewsTypeID", DbType = "Int NOT NULL")]
        public int NewsTypeID
        {
            get;
            set;
        }

        [Column(Name = "NewsImage", DbType = "NVarChar(50)")]
        public string NewsImage
        {
            get;


            set;
        }

        [Column(Name = "NewContent", DbType = "Text")]
        public string NewContent
        {
            get;
            set;
        }
        [Column(Name = "AttrFileName", DbType = "NVarChar(200)")]
        public string AttrFileName
        {
            get;
            set;
        }
        [Column(Name = "FileArr", DbType = "NVarChar(200)")]
        public string FileArr
        {
            get;
            set;
        }
        [Column(Name = "IsTop", DbType = "Bit NOT NULL")]
        public bool IsTop
        {
            get;
            set;
        }

        [Column(Name = "IsRestrict", DbType = "Bit NOT NULL")]
        public bool IsRestrict
        {
            get;
            set;
        }

        [Column(Name = "LastDate", DbType = "DateTime NOT NULL")]
        public System.DateTime LastDate
        {
            get;
            set;


        }

        [Column(Name = "Operator", DbType = "NVarChar(20) NOT NULL")]
        public string Operator
        {
            get;
            set;
        }
        #endregion

    }



但另一个实体类用同样的方法可以更新

        public void GuestBookUpdate(m_GuestBookEntity guestBookEntity)
        {
            m_GuestBookEntity updateEntity = dataBase.m_GuestBook.Single(p => p.GuestBookID == guestBookEntity.GuestBookID);
            updateEntity = guestBookEntity;
            dataBase.SubmitChanges();
        }



[Serializable]
    [Table(Name = "m_GuestBook")]
    public class m_GuestBookEntity
    {
        [Column(Name = "GuestBookID", AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)]
        public int GuestBookID
        {
            get;
            set;
        }
        [Column(Name = "UserName", DbType = "NVarChar(50) NOT NULL")]
        public string UserName
        {
            get;
            set;
        }
        [Column(Name = "UserAddress", DbType = "NVarChar(100)")]
        public string UserAddress


        {
            get;
            set;
        }
        [Column(Name = "GuestTitle", DbType = "NVarChar(50)")]
        public string GuestTitle
        {
            get;
            set;
        }
        [Column(Name = "GuestContent", DbType = "Text NOT NULL")]
        public string GuestContent
        {
            get;
            set;
        }
        [Column(Name = "IsDisplay",DbType = "Bit NOT NULL")]
        public bool IsDisplay
        {
            get;
            set;
        }
        [Column(Name = "LastDate", DbType = "DateTime NOT NULL")]
        public System.DateTime LastDate
        {
            get;
            set;
        }



上面这个就可以更新,无法理解,跪请高人指点。
[解决办法]
 public void NewsUpdate(r_NewsEntity newsEntity)
        {
            r_NewsEntity updateEntity = dataBase.r_News.Single(p => p.NewsID == newsEntity.NewsID);


            updateEntity = newsEntity;
            dataBase.SubmitChanges();
        }



不要整个对象进行付值,你应该这样:
 
public void NewsUpdate(r_NewsEntity newsEntity)
        {
            r_NewsEntity updateEntity = dataBase.r_News.Single(p => p.NewsID == newsEntity.NewsID);。
            updateEntity.NewsTitle = newsEntity.NewsTitle;
            updateEntity.NewsTypeID= newsEntity.NewsTypeID;
            updateEntity.NewsImage= newsEntity.NewsImage;
            updateEntity.NewContent= newsEntity.NewContent;
//...
            dataBase.SubmitChanges();
        }

热点排行