/// <summary> /// エンティティのnull項目が初期化する /// 数字の項目:ゼロ /// 文字列の項目:空白 /// ★値があるの項目はそのままにする /// </summary> /// <typeparam name="T">タイプ</typeparam> /// <param name="entity">エンティティ</param> /// <returns>初期化結果</returns> public static T InitEntityValue<T>(T entity) { if (entity == null) { // ヌルの場合、対象インスタンスを作成する entity = (T)Activator.CreateInstance(typeof(T)); } var type = entity.GetType(); var items = type.GetProperties(); foreach (var item in items) { if (item.GetValue(entity, null) != null) { continue; } if (typeof(string).Equals(item.PropertyType)) { item.SetValue(entity, string.Empty, null); } else if (typeof(bool).Equals(item.PropertyType)) { item.SetValue(entity, false, null); } else if (typeof(int).Equals(item.PropertyType)) { item.SetValue(entity, 0, null); } else if (typeof(long).Equals(item.PropertyType)) { item.SetValue(entity, 0L, null); } else if (typeof(float).Equals(item.PropertyType)) { item.SetValue(entity, 0F, null); } else if (typeof(double).Equals(item.PropertyType)) { item.SetValue(entity, 0D, null); } else if (typeof(decimal).Equals(item.PropertyType)) { item.SetValue(entity, decimal.Zero, null); } else if (typeof(int?).Equals(item.PropertyType)) { item.SetValue(entity, 0, null); } else if (typeof(long?).Equals(item.PropertyType)) { item.SetValue(entity, 0L, null); } else if (typeof(float?).Equals(item.PropertyType)) { item.SetValue(entity, 0F, null); } else if (typeof(double?).Equals(item.PropertyType)) { item.SetValue(entity, 0D, null); } else if (typeof(decimal?).Equals(item.PropertyType)) { item.SetValue(entity, decimal.Zero, null); } else if (typeof(Nullable<int>).Equals(item.PropertyType)) { item.SetValue(entity, 0, null); } else if (typeof(Nullable<long>).Equals(item.PropertyType)) { item.SetValue(entity, 0L, null); } else if (typeof(Nullable<float>).Equals(item.PropertyType)) { item.SetValue(entity, 0F, null); } else if (typeof(Nullable<double>).Equals(item.PropertyType)) { item.SetValue(entity, 0D, null); } else if (typeof(Nullable<decimal>).Equals(item.PropertyType)) { item.SetValue(entity, decimal.Zero, null); } else { item.SetValue(entity, InitEntityValue(item.GetValue(entity, null)), null); } } return entity; }
给一个Entity的字段付初始化值(C#),布布扣,bubuko.com
原文地址:http://www.cnblogs.com/liuhy/p/3746537.html