我有一個通用Get方法基地倉庫使用返回數據小巧玲瓏像通用QueryMultiple與小巧玲瓏
public T Get<T>(Func<IDbConnection, T> query)
{
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ConnectionString))
{
return query.Invoke(db);
}
}
但是我現在需要返回多個數據。該DAL查詢如下:
var multi = db.QueryMultiple(getCarDataSp , new { CustomerID = customerId, Year = year },
commandType: CommandType.StoredProcedure));
var cars = multi.Read<CarDTO>();
var options = multi.Read<CarOptionDTO>();
//wire the options to the cars
foreach(var car in cars){
var carOptions = options.Where(w=>w.Car.CarID == car.CarID); //I would override Equals in general so you can write w.Car.Equals(car)...do this on a common DataModel class
car.Options = carOptions.ToList();
}
是否有可能有一個通用GetMultiple我BaseRepository還是會環繞在我的Get方法得到的多,然後汽車和期權中有自己單獨的問題打電話?
作爲使用情況變得越來越複雜,解決方案變得越來越普遍使用。我不建議在BaseRepository類中加入這樣的東西。如果你打算,你需要幾個用例才能正確構建它。 –
有人認爲是相似的。在那個時候,我已經離開了該方法的實現,而不是它的基本庫,並認爲它適合我的需求。歡呼 –
此代碼添加了什麼值?只是選擇連接字符串。它將整個Dapper表面縮小爲查詢調用。這很聰明,但我不認爲這是個好主意。 – bbsimonbb