Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为域对象解析数据映射器最常用的解决方案是什么_C#_Domain Driven Design_Datamapper_Abstraction - Fatal编程技术网

C# 为域对象解析数据映射器最常用的解决方案是什么

C# 为域对象解析数据映射器最常用的解决方案是什么,c#,domain-driven-design,datamapper,abstraction,C#,Domain Driven Design,Datamapper,Abstraction,G'day, 我试着搜索一个主题,但没有找到任何东西,至少现在还没有 我有3个域对象,它们实现了接口的可扩展性。我想构建一个通用的数据映射器层,在IEntity上执行创建、更新和删除操作。问题是每个具体实体都保存在自己的表中,所以我似乎需要3个具体映射器来处理这个问题。 然而,客户对具体的对象一无所知——它只知道抽象性。很明显,我不想让具体的物体知道任何关于地图绘制者的事情 所以,似乎应该有一种方法让客户端获得正确类型的映射器。在这种情况下会使用服务定位器模式吗 比如: public IEnti

G'day, 我试着搜索一个主题,但没有找到任何东西,至少现在还没有

我有3个域对象,它们实现了接口的可扩展性。我想构建一个通用的数据映射器层,在IEntity上执行创建、更新和删除操作。问题是每个具体实体都保存在自己的表中,所以我似乎需要3个具体映射器来处理这个问题。 然而,客户对具体的对象一无所知——它只知道抽象性。很明显,我不想让具体的物体知道任何关于地图绘制者的事情

所以,似乎应该有一种方法让客户端获得正确类型的映射器。在这种情况下会使用服务定位器模式吗

比如:

public IEntityDataMapper GetMapper(IEntity entity)
实现这一目标的其他方法是什么?这是不是我的领域模型一开始就有点问题

我试图实现的目标示例: (客户代码)


每个实体的更新背后的逻辑可能会非常不同。

我不确定我是否完全理解您在寻找什么,但这听起来像是Automapper的案例


p、 我想你正在使用.Net。。。但是我想你从来没有指定过…

我也不太清楚你想做什么->但是你熟悉ORM的概念吗,例如NHibernate,你是否尝试将这些实体映射到关系数据库? 您可以使用类似于简单NHibernate会话的抽象:

IEntity someEntity = new Customer("John", "Doe");
session.Save(someEntity);

如果您将实体映射到数据库…

我已经编辑了我的帖子-添加了一个我试图实现的示例。
IEntity someEntity = new Customer("John", "Doe");
session.Save(someEntity);