When I do the ISitecoreContext.Query, if the query contains the [@@templatename='some_name'], for example:
"/sitecore/Content/Home/*[@@templatename='some_name']"
the query result follows the order in content tree.
Otherwise, like the following:
"/sitecore/Content/Home/*"
the sorting doesn't follow the content tree order.
Does Glass Mapper switch to Sitecore fast query automatically and how to prevent this happening? (Better I don't have to resolve this in the sort order field way...)
Glass does not change the sort order of items in a tree list, so I am unsure what is causing this. Also Glass does not use fast query unless you instruct it to.
The best way to test if this is a Glass bug or not is to use the raw Sitecore API. To test you query use Database.SelectItems and to test the tree list use the standard Sitecore.Data.Fields.MultilistField.
If you do notice a difference between what SC and Glass return then please raise a bug on Github.