中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

EF架構~終(zhong)于(yu)實現了(le)Update方法(fa)的統一

回到目錄

首(shou)先,由于(yu)統一(yi)更新需要把原實例復制一(yi)份過(guo)來,所(suo)以(yi)(yi)要有(you)一(yi)個主鍵統一(yi)的功(gong)能(neng),而我們(men)(men)知道,不可以(yi)(yi)把所(suo)有(you)表的主鍵都設置成統一(yi)的名(ming)稱,所(suo)以(yi)(yi),我們(men)(men)只能(neng)從一(yi)個虛(xu)擬的主鍵上想辦法,這時(shi),為(wei)了完成我們(men)(men)的需要,我們(men)(men)應該引(yin)進(jin)一(yi)個IEntity實體的統一(yi)接口,它有(you)一(yi)個屬性,我們(men)(men)使用ID表示,即它是統一(yi)實體的主鍵,由于(yu)int類型可以(yi)(yi)完全(quan)轉化為(wei)string,所(suo)以(yi)(yi)我們(men)(men)把類型定義為(wei)string

代碼如下:

namespace Entity

{

    /// <summary>

    /// 實體模塊統一接口

    /// </summary>

    public interface IEntity

    {

        /// <summary>

        /// 為了主鍵統一,而手動設置的

        /// </summary>

        string ID { get; }

    }

}

 

而userbas這個實體將去實現IEntity這個接口,它的代碼就變成了:
public class UserBas : IEntity

    {

        public UserBas()

        {

            this.Diaries = new List<Diary>();

            this.User_Roles = new List<User_Roles>();

        }

     

        public string UserID { get; set; }

        public string UserName { get; set; }

        public string Email { get; set; }

        public string Password { get; set; }

        public System.DateTime CreateDate { get; set; }

        public System.DateTime UpdateDate { get; set; }

        public int Status { get; set; }

        public virtual ICollection<Diary> Diaries { get; set; }

        public virtual ICollection<User_Roles> User_Roles { get; set; }

        public virtual UserInfo UserInfo { get; set; }

 

        #region IEntity Members

 

        /// <summary>

        /// 返回實體的主鍵

        /// </summary>

        public string ID

        {

            get { return UserID; }

        }

 

        #endregion

    }

 

 

基礎工作做完后,我們就可以修改(gai)EntityRepository.cs這個數據統一操作實現(xian)類了,

看它的update部分:

  #region IEntityRepository<TEntity> Members

        public void Update(TEntity entity)

        {

            var entry = this._db.Entry(entity);

            if (entry.State == EntityState.Detached)

            {

                var entityToUpdate = DbSet.Find(entity.ID);

                EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper<TEntity, TEntity>()

                                              .Map(entity, entityToUpdate);

                this.SaveChanges();

            }

        }

 

        public void Update(IList<TEntity> list)

        {

            throw new NotImplementedException();

        }


回到目錄
posted @ 2011-07-25 11:19  張占嶺  閱讀(13133)  評論(14)    收藏  舉報