用于处理CRUD操作的通用基类

时间:2017-07-26 15:19:40

标签: c# generics inheritance crud

无论对象的类型如何,我都需要将CRUD操作合并到单个基类中。我无法修改调用代码,这可能是任何东西......所以如果有一堆调用者看起来像这样:

var state = new State("New York");
state.Save();

var city = new City("New York", state);
city.Save();

var stadium = new Stadium("Yankee Stadium", city);
stadium.Save();

所有这些Save方法都需要在一个单一的公共基类中处理。

我引导自己的道路是创建一个这些类实现的通用抽象基类,例如以下......

public abstract class PersistableObject<T> where T : class {
    public string Id { get; set; }
    public static T Find(string id) {}
    public void Save() { }
    public void Delete() { } 
}

然后我将上述对象从此类继承:

public class City: PersistableObject<City> { }

我删除了与具体实现相关的CRUD方法,并且在从抽象基类继承这些各种对象之后,解决方案编译时没有错误。

现在我被卡住了。后备存储是本地XML文档(由我手中的决定)。我猜我可以使用.Net中的普通XML序列化程序将这些序列化为XML,但是有更好的方法吗?我应该使用某种存储库模式吗?

感谢。

0 个答案:

没有答案
相关问题