mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	源代码改用vs默认格式化
This commit is contained in:
		@@ -6,60 +6,67 @@ using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
public static class CodeFirstExtensions {
 | 
			
		||||
public static class CodeFirstExtensions
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	public static void ConfigEntity(this ICodeFirst codeFirst, IModel efmodel) {
 | 
			
		||||
    public static void ConfigEntity(this ICodeFirst codeFirst, IModel efmodel)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
		foreach (var type in efmodel.GetEntityTypes()) {
 | 
			
		||||
        foreach (var type in efmodel.GetEntityTypes())
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
			codeFirst.ConfigEntity(type.ClrType, a => {
 | 
			
		||||
            codeFirst.ConfigEntity(type.ClrType, a =>
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
				//表名
 | 
			
		||||
				var relationalTableName = type.FindAnnotation("Relational:TableName");
 | 
			
		||||
				if (relationalTableName != null)
 | 
			
		||||
					a.Name(relationalTableName.Value?.ToString() ?? type.ClrType.Name);
 | 
			
		||||
                //表名
 | 
			
		||||
                var relationalTableName = type.FindAnnotation("Relational:TableName");
 | 
			
		||||
                if (relationalTableName != null)
 | 
			
		||||
                    a.Name(relationalTableName.Value?.ToString() ?? type.ClrType.Name);
 | 
			
		||||
 | 
			
		||||
				foreach (var prop in type.GetProperties()) {
 | 
			
		||||
                foreach (var prop in type.GetProperties())
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
					var freeProp = a.Property(prop.Name);
 | 
			
		||||
                    var freeProp = a.Property(prop.Name);
 | 
			
		||||
 | 
			
		||||
					//列名
 | 
			
		||||
					var relationalColumnName = prop.FindAnnotation("Relational:ColumnName");
 | 
			
		||||
					if (relationalColumnName != null)
 | 
			
		||||
						freeProp.Name(relationalColumnName.Value?.ToString() ?? prop.Name);
 | 
			
		||||
                    //列名
 | 
			
		||||
                    var relationalColumnName = prop.FindAnnotation("Relational:ColumnName");
 | 
			
		||||
                    if (relationalColumnName != null)
 | 
			
		||||
                        freeProp.Name(relationalColumnName.Value?.ToString() ?? prop.Name);
 | 
			
		||||
 | 
			
		||||
					//主键
 | 
			
		||||
					freeProp.IsPrimary(prop.IsPrimaryKey());
 | 
			
		||||
                    //主键
 | 
			
		||||
                    freeProp.IsPrimary(prop.IsPrimaryKey());
 | 
			
		||||
 | 
			
		||||
					//自增
 | 
			
		||||
					freeProp.IsIdentity(
 | 
			
		||||
						prop.ValueGenerated == ValueGenerated.Never ||
 | 
			
		||||
						prop.ValueGenerated == ValueGenerated.OnAdd ||
 | 
			
		||||
						prop.GetAnnotations().Where(z =>
 | 
			
		||||
							z.Name == "SqlServer:ValueGenerationStrategy" && z.Value.ToString().Contains("IdentityColumn") //sqlserver 自增
 | 
			
		||||
							|| z.Value.ToString().Contains("IdentityColumn") //其他数据库实现未经测试
 | 
			
		||||
						).Any()
 | 
			
		||||
					);
 | 
			
		||||
                    //自增
 | 
			
		||||
                    freeProp.IsIdentity(
 | 
			
		||||
                        prop.ValueGenerated == ValueGenerated.Never ||
 | 
			
		||||
                        prop.ValueGenerated == ValueGenerated.OnAdd ||
 | 
			
		||||
                        prop.GetAnnotations().Where(z =>
 | 
			
		||||
                            z.Name == "SqlServer:ValueGenerationStrategy" && z.Value.ToString().Contains("IdentityColumn") //sqlserver 自增
 | 
			
		||||
                            || z.Value.ToString().Contains("IdentityColumn") //其他数据库实现未经测试
 | 
			
		||||
                        ).Any()
 | 
			
		||||
                    );
 | 
			
		||||
 | 
			
		||||
					//可空
 | 
			
		||||
					freeProp.IsNullable(prop.AfterSaveBehavior != PropertySaveBehavior.Throw);
 | 
			
		||||
                    //可空
 | 
			
		||||
                    freeProp.IsNullable(prop.AfterSaveBehavior != PropertySaveBehavior.Throw);
 | 
			
		||||
 | 
			
		||||
					//类型
 | 
			
		||||
					var relationalColumnType = prop.FindAnnotation("Relational:ColumnType");
 | 
			
		||||
					if (relationalColumnType != null) {
 | 
			
		||||
                    //类型
 | 
			
		||||
                    var relationalColumnType = prop.FindAnnotation("Relational:ColumnType");
 | 
			
		||||
                    if (relationalColumnType != null)
 | 
			
		||||
                    {
 | 
			
		||||
 | 
			
		||||
						var dbType = relationalColumnType.ToString();
 | 
			
		||||
						if (!string.IsNullOrEmpty(dbType)) {
 | 
			
		||||
                        var dbType = relationalColumnType.ToString();
 | 
			
		||||
                        if (!string.IsNullOrEmpty(dbType))
 | 
			
		||||
                        {
 | 
			
		||||
 | 
			
		||||
							var maxLength = prop.FindAnnotation("MaxLength");
 | 
			
		||||
							if (maxLength != null)
 | 
			
		||||
								dbType += $"({maxLength})";
 | 
			
		||||
                            var maxLength = prop.FindAnnotation("MaxLength");
 | 
			
		||||
                            if (maxLength != null)
 | 
			
		||||
                                dbType += $"({maxLength})";
 | 
			
		||||
 | 
			
		||||
							freeProp.DbType(dbType);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
                            freeProp.DbType(dbType);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user