mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 01:05:27 +08:00 
			
		
		
		
	- 优化 集合导航属性表达式中忘记使用 AsSelect() 的友好错误提示;
This commit is contained in:
		@@ -1021,6 +1021,7 @@ namespace FreeSql.Internal
 | 
			
		||||
                    other3Exp = ExpressionLambdaToSqlOther(exp3, tsc);
 | 
			
		||||
                    if (string.IsNullOrEmpty(other3Exp) == false) return other3Exp;
 | 
			
		||||
                    if (exp3.IsParameter() == false) return formatSql(Expression.Lambda(exp3).Compile().DynamicInvoke(), tsc.mapType, tsc.mapColumnTmp, tsc.dbParams);
 | 
			
		||||
                    if (exp3.Method.DeclaringType == typeof(Enumerable)) throw new Exception($"未实现函数表达式 {exp3} 解析。如果正在操作导航属性集合,请使用 .AsSelect().{exp3.Method.Name}({(exp3.Arguments.Count > 1 ? "..." : "")})");
 | 
			
		||||
                    throw new Exception($"未实现函数表达式 {exp3} 解析");
 | 
			
		||||
                case ExpressionType.Parameter:
 | 
			
		||||
                case ExpressionType.MemberAccess:
 | 
			
		||||
@@ -1292,6 +1293,8 @@ namespace FreeSql.Internal
 | 
			
		||||
                                    }
 | 
			
		||||
                                    if (tb2.ColumnsByCsIgnore.ContainsKey(mp2.Member.Name))
 | 
			
		||||
                                        throw new ArgumentException($"{tb2.DbName}.{mp2.Member.Name} 被忽略,请检查 IsIgnore 设置,确认 get/set 为 public");
 | 
			
		||||
                                    if (tb2.GetTableRef(mp2.Member.Name, false) != null)
 | 
			
		||||
                                        throw new ArgumentException($"{tb2.DbName}.{mp2.Member.Name} 导航属性集合忘了 .AsSelect() 吗?如果在 ToList(a => a.{mp2.Member.Name}) 中使用,请移步参考 IncludeMany 文档。");
 | 
			
		||||
                                    throw new ArgumentException($"{tb2.DbName} 找不到列 {mp2.Member.Name}");
 | 
			
		||||
                                }
 | 
			
		||||
                                var col2 = tb2.ColumnsByCs[mp2.Member.Name];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user