NHibernateのページにも載ってるRepositoryパターンを使い、上記の「Singleメソッドの意義」的なものを書き直したみた。メソッド名、クラス名ともに分かりやすくなったんじゃないかと思う。 class Program { public static void Main(string[] args) { FoodItemAction action = new FoodItemAction(); action.Add(2,"マフィン",300).Add( new FoodItem(){Id=5,Name="スコーン",Price=500} ); action.search(0); action.search(10); action.search(1); Console.Write("Press any key to continue . . . "); Console.ReadK