1

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

4

1 回答 1

0

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

我能想到的最好办法是在我移交给 Dapper 以执行请求的操作之前调用 Convert.ChangeType。

例如,我喜欢将我的数据库交互与我的业务逻辑分开。这个想法是我可以轻松地将 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)

希望这可以帮助!

于 2017-03-26T10:03:41.050 回答