現在、この問題に頭を悩ませています。パラメータを必要としないメソッドがあり、パラメータを追加する必要がありますが、メソッドが呼び出されるすべての異なる場所にパラメータを追加したくありません。これは私の現在の方法です:
private IEnumerable<SearchItems> GetItems(ItemDescriptionFormViewModel viewModel = null)
{
IOrderedQueryable<ItemDescription> items= _itemDescriptionRepository.FindAll().OrderBy(
c => c.Sort == null).ThenBy(
c => c.Sort).ThenBy(c => c.Description);
if(items.Count()==0)
ModelState.AddModelError("", string.Format("No active {0} entered.", Kids.Resources.Entities.ItemDescription.EntityNamePlural));
return
_itemDescriptionRepository.FindAll().OrderBy(c => c.Description).Where(a=>a.IsActive == true || viewModel == null || a.ItemDescriptionId == viewModel.ItemDescriptionId).Select(
c => new SearchItems {Text = c.Description, Value = c.ItemDescriptionId.ToString()});
}
このメソッドが呼び出されている他の場所のパラメーターとしてnullを渡そうとしましたが、エラーが発生します。この問題をオーバーロードする方法は何ですか?
目的:viewModelを追加する目的は、アクティブなアイテムを選択できるドロップダウンリストがあるためです。ユーザーがアクティブなアイテムを選択すると、何らかの理由でそのアイテムが非アクティブになり、ユーザーは選択内容を編集します。ドロップダウンリストには、アクティブなアイテムのリストと、現在非アクティブになっている以前に選択したアイテムが表示されます。ViewModelを使用して、以前に選択したアイテムのIDを確認しています。
ありがとう