France is considered one of the "better" countries to play in Diplomacy. That's true insofar as it a "corner" and not a "center" country like Germany, Austria-Hungary, and Italy.

In descending order, my favorite strategies are 1) Go for the Mediterranean, 2) Ally with England vs. Germany 3) Ally with Germany Vs. England. But I've found France a tough, frustrating country to play when one can't use a Mediterranean strategy (because of what's going on elsewhere). A couple examples:

In one game, England "allied" with me against Germany, than stabbed me, leading to a Franco-German alliance (my least favorite). Meanwhile, Italy stabbed Austria, A Venice-Trieste, and got two builds in 1901, three in 1902, and had her choice of allies: with Russia vs. Turkey and Germany, with England vs. France.

In another game, I had to ward off an Anglo-German invasion. But the English army that went to Belgium marched into the Ruhr, again leading to a Franco-German alliance. But by the time we reshuffled the alliance, Austria-Hungary had stabbed Italy, overextended in a Lepanto opening, captured Venice and Rome, and dominated the Med. With Turkey, Italy, and the Balkans, Austria and Russia had the 18 centers to declare themselves co-winners.

Have I been misplaying France? Or has my inability to control the Med been due to my northern troubles, and the Austro-Italian imbalances? Can I hope for a more "fortunate" result playing France in future games, against, say, random opponents?


Question: generic helper to get ObjectResult<T> that will match any given EntityObject
Answer: after some time of testing every possible option, while i did not find any similar code on the net..

this is my solution , as an extension method, did i conduct a bad search/research ? or just no one use it like this , although the extesion is for the type ObjectContext it does return an ObjectResult
list of optional parameters for where clause + another for order by and it does the work 

string firstPartSql="SELECT * FROM YourTblName"; 


list of string for   WHERE filter will contain elements like

"columnName=value", "columnName Like '%val%'" 


list of string for Order by will contain elements like

"ColumnName" ,"ColumnName DESC"



 public static ObjectResult&lt;T&gt; getUsersResStatic&lt;T&gt;(this ObjectContext Entt, string sqlBeginhing, List&lt;string&gt; LstSelectWhersFilter = null, List&lt;string&gt; LstOby = null)
{


    string SqlCmd = "";
    string StrWhereFilterPrefix = "";
    string StrFinalWHEREFiter ="";
    string StrKeyOb1 = "";
    string StrKeyOb2 = "";
    string StrFinalOrderBy = "";

    if (LstSelectWhersFilter != null)
    {
        StrWhereFilterPrefix = "WHERE";
        for (int CountWhers = 0; CountWhers &lt; LstSelectWhersFilter.Count; CountWhers++)
        {
            if (CountWhers == 0) StrFinalWHEREFiter = string.Format(" {0} {1} ", StrWhereFilterPrefix, LstSelectWhersFilter.ElementAt(CountWhers));
            else
            {
                StrWhereFilterPrefix = "AND";
                StrFinalWHEREFiter += string.Format(" {0} {1} ", StrWhereFilterPrefix, LstSelectWhersFilter.ElementAt(CountWhers));
            }

        }
    }

    if (LstOby != null)
    {
        StrKeyOb1 = "ORDER BY";
        if (LstOby.Count &gt; 1)
        {
            StrKeyOb2 = ",";
            for (int i = 0; i &lt; LstOby.Count; i++)
            {
                if (i == 0) StrFinalOrderBy = string.Format("{0} {1}", StrKeyOb1, LstOby.ElementAt(i));
                else
                StrFinalOrderBy += string.Format("{0} {1}", StrKeyOb2, LstOby.ElementAt(i));
            }
        }
        else StrFinalOrderBy = string.Format("{0} {1}", StrKeyOb1, LstOby.ElementAt(0));
        SqlCmd = string.Format("{0} {1} {2}", sqlBeginhing, StrFinalWHEREFiter, StrFinalOrderBy);//StrKeyOb2, ob2);
    }
    if (LstSelectWhersFilter == null &amp;&amp; LstOby == null) SqlCmd = sqlBeginhing;

    return Entt.ExecuteStoreQuery&lt;T&gt;(SqlCmd);

}


any kind of comment will be helpfull (well...almost any)