曜日に応じてSQLの列(曜日で指定)から情報を返すコードを実行しようとしていますが、私は現在、このような冗長なコードを持っています。曜日に基づいてクエリを実行する
public void ErrorTest()
{
using (ScraperSetupEntities context = new ScraperSetupEntities())
{
int collectionavg;
string today = DateTime.Now.DayOfWeek.ToString();
if (today == "Sunday")
{
collectionavg = context.FourWeekCollectionReports.First().FourWeekSundayCollected;
}
if (today == "Monday")
{
collectionavg = context.FourWeekCollectionReports.First().FourWeekMondayCollected;
}
// etc etc for every day of the week
}
}
は、私は文字列リテラルを持っており、「収集」「FourWeek」+今日+に曜日を追加し、クエリとして文字列を実行することができ、T-SQLで知っているが、私はできませんどのようにC#で似たようなことをするかを理解する。どんな助けもありがとう。おかげ
を求めることができますか? – Minh
'First()'オブジェクトに 'collectionAvg'を返すメソッドがありますか?たとえば、 'int GetFourWeekCollectedByDay(string dayName)'?インターフェースや継承を使用していても、 'if-else-if'や' switch'/'case'の束を回避する方法はありません。 – Kyle
このデザインではありません。しかし、あなたはswitch文を使用するべきです。そして、それと比較するために列挙型でToStringを呼び出すべきではありません。 DayOfWeek列挙体を使用して、DateTime.DayOfWeekと比較します。 – Will