/// <summary> /// 翻译单个实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public T Translate <T>(T t, LanguageEmun language) { if (language == LanguageEmun.CHINESE) { return(t); } var lan = (int)language; Type type = typeof(T); string tableName = type.Name; PropertyInfo[] fileds = type.GetProperties(); string[] strFileds = fileds.Select(f => f.Name).ToArray(); int id = Convert.ToInt32(type.GetProperty("id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase).GetValue(t, null)); var refsDatas = DbContext.Refs.Where(x => x.TableName == tableName && x.RowID == id).ToList(); foreach (string fileName in strFileds) { var prop = type.GetProperty(fileName); var entity = refsDatas.Where(m => m.TableName == tableName && m.FiledName == fileName && m.RowID == id && m.LanguageID == lan).FirstOrDefault(); if (entity != null) { prop.SetValue(t, Convert.ChangeType(entity.RowValue, prop.PropertyType)); } } return(t); }
/// <summary> /// 翻译集合实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entityList"></param> /// <returns></returns> public List <T> Translate <T>(List <T> entityList, LanguageEmun language) { foreach (var entity in entityList) { Translate(entity, language); } return(entityList); }