具有对象继承的Dapper FastCRUD

时间:2017-03-21 13:56:27

标签: dapper dapper-fastcrud

我正在使用Dapper FastCRUD插入/更新我的项目。我有一个从另一个实体继承的实体。它们都有单独的目标表,用TableAttribute注释。有没有办法使用Fast CRUD将数据保存到两个表中,如果我有一个类型的对象,这是继承的类?

1 个答案:

答案 0 :(得分:0)

不幸的是,我不认为我们可以期待Dapper FastCRUD或任何常见的dapper扩展以这种方式处理对象继承 - 我玩了一些但没有运气。

我能想到的最好是在切换到Dapper之前调用Convert.ChangeType来执行请求的操作。

例如,我喜欢将我的数据库交互与业务逻辑分开。我的想法是,我可以轻松地将ORM替换为另一个ORM,而不会接近我的业务逻辑。

public void Create<T>(T bo) where T : BusinessObject
{
    var castedBo = (T)Convert.ChangeType(bo, typeof(T));
    Connection.Insert(castedBo);
}

我的对象我试图坚持扩展BusinessObject

Table("Blog")]
public class Blog : BusinessObject {
 ...
}

然后我可以坚持我的对象

Blog blog = new Blog();
dataMapper.Create(Blog)

希望这有帮助!