我有一个应用程序。此应用程序使用接口来访问数据库。这个接口可以被很多类实现。例如,一个使用 EF 4.4,但其他类可以使用更高效的 EF5。将来我可能会使用 EF6,因为它使用异步方法。在此示例中,所有方法都使用 EF,但也许其他选项可以使用其他方式。
应用程序编码一次,使用接口,并根据配置文件,使用一个实现或另一个,所以我只需要在一个地方修改代码,构造函数,在类的实例化中添加新选项分配给接口。
目前类的所有方法都不是async
,但是将来如果我使用EF6我想使用异步方法,所以我不知道使用EF6并实现接口的类是否可以使用async
方法。
对于 EF6 的异步方法,我会使用 async/awiat 模式,因此在我的类的方法中我需要使用 async 属性。这让我await
在调用 EF6 的异步方法时可以使用关键字。
但是这个类可以实现第一次用于同步方法的接口吗?
有没有什么方法可以在主应用程序中使用许多实现而不需要修改代码?一些实现将使用异步方法,而其他实现将是同步的。