public class Car
{
public int ID { get; set;}
public string Name { get; set; }
// ?? Do I need these or is it better to have Car just contain properties?
Add();
Delete();
}
public static class CarDatabaseAccess
{
public void AddCar(Car c);
public void DeleteCar(Car c);
public List<Car> RetrieveCars();
}
通过上面的对象设置,删除汽车的正确方法是什么?我基本上有两个选择
public void DeleteButton_Click(...)
{
var car = listView.SelectedItem as Car;
CarDatabaseAccess.DeleteCar(car);
// or
var car = listView.SelectedItem as Car;
car.Delete();
}
数据库访问层调用存储过程,因此我无法切换到实体或类似的东西。
我应该注意到,有数百个对象需要 DatabaseAccess 类,因此为 DatabaseAccess 层设置接口(interface)(用于依赖注入(inject)测试)在我所拥有的时间范围内是不可行的
最佳答案
这里基本上有一个存储库模式。将操作从 Car 中取出,并使用 CarDatabaseAccess,它应该是一个接口(interface),因此它是可测试的。
关于c# - 从哪个类调用 DAL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655312/