程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Update實體時如何避免逐一賦值

Update實體時如何避免逐一賦值

編輯:C#入門知識

使用以下方法可以實現避免Update實體時避免逐一賦值的麻煩。 代碼:  

public static class ReflectionExtensions  
    {  
        public static void CopyPropertiesFrom(this object destObject, object sourceObject)  
        {  
            if (null == destObject)  
                throw new ArgumentNullException("destObject");  
            if (null == sourceObject)  
                throw new ArgumentNullException("sourceObject");  
  
            Type destObjectType = destObject.GetType();  
            foreach (PropertyInfo sourcePi in sourceObject.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))  
            {  
                PropertyInfo destPi = destObjectType.GetProperty(sourcePi.Name);  
                if (null != destPi && null != destPi.SetMethod)  
                {  
                    object sourcePropertyValue = sourcePi.GetValue(sourceObject);  
  
                    destPi.SetValue(destObject, sourcePropertyValue);  
                }  
            }  
        }  
  
    }  

 

    調用方法:  
using (DemoDBEntities1 ctx = new DemoDBEntities1())  
            {  
                var query = (from q in ctx.Cities  
                             select q).FirstOrDefault();  
                City city = new City();  
                  
                city.Id = query.Id;  
                city.StateID = 101;  
                city.City1 = "test";  
                  
                query.CopyPropertiesFrom(city);  
                int result = ctx.SaveChanges();  
            }  

 

  希望能幫助到更多的人。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved