我有一个通用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