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();
}


数据库访问层调用存储过程,所以我不能切换到实体或类似的东西。

我应该注意到有100个对象需要一个DatabaseAccess类,因此在我拥有的时间范围内为DatabaseAccess层设置接口(用于依赖注入测试)将不可行

最佳答案

您基本上在这里有一个存储库模式。取消Car的操作,并使用CarDatabaseAccess,它应该是一个接口,以便可以测试。

关于c# - 从哪个类调用DAL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30655312/

10-13 08:19