From 74c486c1d1ed54f6eb49ad8efdc94ceecde5f7cc Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 17 May 2017 02:21:07 +0800 Subject: [PATCH] - --- .../EntityProvider/EntityProvider.cs | 32 +++++++++++++++++-- SqlSugar/Entities/EntityColumnInfo.cs | 3 ++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/SqlSugar/Abstract/DbProvider/EntityProvider/EntityProvider.cs b/SqlSugar/Abstract/DbProvider/EntityProvider/EntityProvider.cs index bdc7eb887..2c50b7417 100644 --- a/SqlSugar/Abstract/DbProvider/EntityProvider/EntityProvider.cs +++ b/SqlSugar/Abstract/DbProvider/EntityProvider/EntityProvider.cs @@ -102,14 +102,40 @@ namespace SqlSugar #region Primary key private static void SetColumns(EntityInfo result) { - foreach (var item in result.Type.GetProperties()) + foreach (var property in result.Type.GetProperties()) { EntityColumnInfo column = new EntityColumnInfo(); - column.PropertyName = item.Name; - column.PropertyInfo = item; + var isVirtual = property.GetGetMethod().IsVirtual; + if (isVirtual) continue; + var sugarColumn = property.GetCustomAttributes(typeof(SugarColumn), true) + .Where(it => it is SugarColumn) + .Select(it => (SugarColumn)it) + .Where(it => it.ColumnName.IsValuable()) + .FirstOrDefault(); + column.DbTableName = result.DbTableName; + column.EnitytName = result.EntityName; + column.PropertyName = property.Name; + if (sugarColumn.IsNullOrEmpty()) + { + column.DbColumnName = property.Name; + } + else + { + if (sugarColumn.IsIgnore == false) + { + column.DbColumnName = sugarColumn.ColumnName.IsNullOrEmpty() ? property.Name : sugarColumn.ColumnName; + column.IsPrimarykey = sugarColumn.IsPrimaryKey; + column.IsIdentity = sugarColumn.IsIdentity; + column.ColumnDescription = sugarColumn.ColumnDescription; + } + else { + column.IsIgnore = true; + } + } result.Columns.Add(column); } } #endregion + } } diff --git a/SqlSugar/Entities/EntityColumnInfo.cs b/SqlSugar/Entities/EntityColumnInfo.cs index 7ca7d70c1..505ae42ee 100644 --- a/SqlSugar/Entities/EntityColumnInfo.cs +++ b/SqlSugar/Entities/EntityColumnInfo.cs @@ -18,5 +18,8 @@ namespace SqlSugar public bool IsNullable { get; set; } public bool IsIdentity { get; set; } public bool IsPrimarykey { get; set; } + public string EnitytName { get; set; } + public string DbTableName { get; set; } + public bool IsIgnore { get; set; } } }