Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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# 使用实体转换器的.NET服务负担_C#_Wcf_Web Services_Entity Framework_Business Objects - Fatal编程技术网

C# 使用实体转换器的.NET服务负担

C# 使用实体转换器的.NET服务负担,c#,wcf,web-services,entity-framework,business-objects,C#,Wcf,Web Services,Entity Framework,Business Objects,在.NET和WCF应用程序中,维护EntityTranslator将业务消息转换为服务消息,并将服务消息转换为业务消息,这增加了我们的负担。事实上,我不能将它们称为业务对象,因为我们只需要从DB获取并更新它们。我们从设备读取数据并存储到DB,从DB读取数据并存储到设备 我们所有的类都是简单的.NET类,不做任何特定的事情 这是非常相似的课程 这是我的服务实体 [DataContract] public class LogInfoServiceEntity { string data1;

在.NET和WCF应用程序中,维护EntityTranslator将业务消息转换为服务消息,并将服务消息转换为业务消息,这增加了我们的负担。事实上,我不能将它们称为业务对象,因为我们只需要从DB获取并更新它们。我们从设备读取数据并存储到DB,从DB读取数据并存储到设备

我们所有的类都是简单的.NET类,不做任何特定的事情

这是非常相似的课程

这是我的服务实体

[DataContract]
public class LogInfoServiceEntity
{
   string data1;
   string name;
}

public class  LogInfo
{
   string data1;
   string name;
}
现在我需要定义转换器来创建另一端的实例类型并复制另一端的数据。我们有大约25个这样的课程,我们觉得很难管理它们。因此,我们有25名企业对服务翻译人员和25名企业对服务翻译人员

我喜欢使用简单的POJO类来存储和获取信息,而不是使用所有的转换器

处理这种情况的最佳方式是什么? 或 翻译是处理这种情况的最好方法吗?

可能就是你要找的。答案是“视情况而定”。这完全取决于系统的复杂性。通常,WCF服务接口应该是粗粒度的,不一定要一对一地映射到业务层实体,以防止到服务器的额外往返

例如,WCF接口中的客户实体可以传递更多的信息,甚至与业务层中的客户实体没有直接关系。但您还需要返回此信息,因为您预测在85%的情况下,客户不仅需要客户数据,而且还需要所有订单/活动或任何其他补充信息

这是一个通常的权衡——是多多少少回报


在您的特定情况下,我将坚持代码生成:您可以编写一个工具,该工具将生成业务逻辑实体之外的所有外部接口和转换器。

这可能是一个愚蠢的问题,但是为什么不呢

使用相同的类作为 当您用于 “商业信息”


通常情况下,您将合同分开,这样您就可以在不影响数据合同的情况下更改业务对象,但是,将合同分开会给您带来什么好处呢?

我喜欢您为实体生成代码的想法。我们可以靠维护和不查看这些转换代码为生。