0
我需要將整數列表傳遞給存儲過程,因爲實體框架需要很長的時間來處理請求。我正在使用用戶定義表類型來執行此操作。我正在使用EntityFrameworkExtras.EF6,並創建了一個存儲過程和Table Type類來幫助解決這個問題。下面是這些類:動態使用對象初始化器
namespace MyModel{
using EntityFrameworkExtras.EF6;
[UserDefinedTableType("SelectedActivity")]
public class ChartCountryUDT
{
[UserDefinedTableTypeColumn(1)]
public int ID { get; set; }
}
[StoredProcedure("GetCountryChartData")]
public class ChartCountryStoredProcedure
{
[StoredProcedureParameter(System.Data.SqlDbType.Udt, ParameterName = "ActivityIDs")]
public List<ChartCountryUDT> ChartCountryUDT { get; set; }
}}
,這裏是我的方法調用存儲過程傳入表型和返回我的對象的列表:
public List<ChartCountry> GetCountriesForChart(List<int> activityIDs)
{
using (MyEntities ctx = new MyEntities())
{
var procedure = new ChartCountryStoredProcedure()
{
ChartCountryUDT = new List<ChartCountryUDT>()
{
new ChartCountryUDT() {ID = 1 }
}
};
return (List<ChartCountry>)ctx.Database.ExecuteStoredProcedure<ChartCountry>(procedure);
}
}
正如你可以在我的ChartCountryUDT對象看初始值設定項,我通過將ID值設置爲1來硬編碼一個對象。此工作正常,但我想採用傳入的activityIDs參數並在對象初始值設定項中爲activityIDs參數中的每個ID創建新對象。是否有任何方法循環播放我的activityIDs列表並在每個記錄的對象初始值設定項中創建新對象? 感謝
這正是我需要的@IvanStoev。非常感謝你! – devguy