c# - 从哪个类调用 DAL?

标签 c# class-design

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/

相关文章:

c# - 在 ASP.NET MVC 站点中正确构建 Lucene.Net 使用

c# - 无法使包装器 binance.net 正常工作

c# - API 中 POST 模型绑定(bind)问题

java - 将大型方法分解为较小的方法时,适当的访问级别实践?

objective-c - 在类方法中使用 self

java - 最佳实践 : instance variables filling over time

iphone - 核心数据实体继承 --> 限制?

c# - dataTable.DefaultView.Rowfilter 总是返回第一行

c# - 除特定情况外,阻止第二个实例运行

python - 在类之间共享实例变量