public class BaseDAL
{
protected object GetOrder(int id)
{
using (var DB = AccessManager.db)
{
return DB.Videos.Where(x => x.ID == id).SingleOrDefault();
}
}
public object GetByID(int id)
{
using (var DB = AccessManager.db)
{
return DB.Videos.Where(x => x.ID == id).SingleOrDefault();
}
}
}
是否有任何选项可以添加此参数int id
对于类中的任何函数而不写每个函数?
像:
public class BaseDAL : ADD SOME CODE THAT SHARE int id for all funcs
{
protected object GetOrder()
{
using (var DB = AccessManager.db)
{
return DB.Videos.Where(x => x.ID == id).SingleOrDefault();
}
}
public object GetByID()
{
using (var DB = AccessManager.db)
{
return DB.Videos.Where(x => x.ID == id).SingleOrDefault();
}
}
}
和GetOrder(12);
将有效。
我希望这样做只是为了减少代码。
答案 0 :(得分:1)
您可以在构造函数中设置ID参数,如下所示:
public class BaseDAL
{
public BaseDAL(int ID)
{
this.id= ID;
}
int id;
protected object GetOrder()
{
using (var DB = AccessManager.db)
{
return DB.Videos.Where(x => x.ID == id).SingleOrDefault();
}
}
public object GetByID()
{
using (var DB = AccessManager.db)
{
return DB.Videos.Where(x => x.ID == id).SingleOrDefault();
}
}
}
这允许你编写这样的代码:
var result = new BaseDAL(5).GetOrder();
您还可以将此与其他答案结合使用,以便您拥有可以设置和更改的属性。但我真的不认为这两个都是个好主意。我认为你已经拥有的更好。此外,我认为您最好还是返回Order
和Video
个对象,而不是Object
。
答案 1 :(得分:0)
向您的班级添加CurrentIndex
媒体资源
public class BaseDAL
{
public CurrentIndex { get; set; }
public Order GetOrder()
{
using (var DB = AccessManager.db) {
return DB.Videos.Where(x => x.ID == CurrentIndex).SingleOrDefault();
}
}
...
}
并像这样使用
var dal = new BaseDAL();
dal.CurrentIndex = 5;
var result = dal.GetOrder();