关于NBear的一点问题

来源:互联网 发布:淘宝客服工具的使用 编辑:程序博客网 时间:2024/04/29 14:36

阅读NBear的源代码,看到这样的语句:

#region GetPropertyMappingColumnNames

        public static void GuessPrimaryKey(EntityConfiguration ec, List<string> primaryKeys)
        {
   //第一次循环
            //check name = ID or GUID column first
            foreach (PropertyConfiguration pc in ec.Properties)
            {
                if (pc.MappingName.ToUpper() == "ID" || pc.MappingName.ToUpper() == "GUID")
                {
                    primaryKeys.Add(pc.MappingName);
                    return;
                }
            }

            //第二次循环
            //check the first ends with ID or Guid column
            foreach (PropertyConfiguration pc in ec.Properties)
            {
                if (pc.MappingName.ToUpper().EndsWith("ID") || pc.MappingName.ToUpper().EndsWith("GUID"))
                {
                    primaryKeys.Add(pc.MappingName);
                    return;
                }
            }

            //or threat the first column as DEFAULT_KEY column
            primaryKeys.Add(ec.Properties[0].MappingName);
        }

感觉奇怪的是,为什么要循环两次?按程序优化的一般方法来说,一次循环应该比较好点,不是么?

原创粉丝点击