以前の質問に対しては良い答えが得られましたが、実際にはさらに複雑です。
このストアド プロシージャに int のリストを渡す必要があります。
ALTER proc [dbo].[Invoice_GetHomePageInvoices] (
@AreaIdList varchar(max)
, @FinancialYearStartDate datetime = null
, @FinancialYearEndDate datetime = null
これが私がこれまでに持っているものです:
public virtual IEnumerable<HomePageInvoice> GetHomePageInvoices(IList<Area> areas, FinancialYearLookup financialYear)
{
var areaIds = areas.Select(x => x.Id).ToList();
//return _db.Database.SqlQuery<HomePageInvoice>(string.Format("EXEC Invoice_GetHomePageInvoices @AreaIdList = '{0}', @FinancialYearStartDate = '{1}', @FinancialYearEndDate = '{2}'", areas.ToString(), financialYear.StartDate.ToString(), financialYear.EndDate.ToString()));
var startDate = new SqlParameter("FinancialYearStartDate", financialYear.StartDate);
var endDate = new SqlParameter("FinancialYearEndDate", financialYear.EndDate);
return _db.Database.SqlQuery<HomePageInvoice>("Invoice_GetHomePageInvoices", startDate, endDate);
}
したがって、datetime パラメータはソートされます。List<int>
しかし、私が現在持っていて、SQLが期待している場合、ストアドプロシージャにIDをどのように送信しますか@AreaIdList varchar(max)