我有一个web应用程序,它连接到WCF服务的业务逻辑。出于性能和互操作性的原因,我想使用简单的Dto在WCF边界传输数据。
但是,我必须使用类型化数据集进行数据访问(由于政治原因,ORM或任何其他选项都不可用)。
将Dto与类型化数据集一起使用是一个好主意吗?有人这么做过吗?有推荐的模式吗?最重要的是,是否有一个库/工具/方法可以从类型化数据集自动生成Dto?
发布于 2009-06-09 21:56:40
实体转换模式出现在我的脑海中。 http://msdn.microsoft.com/en-us/library/cc304747.aspx
好吧,也许是它的一个变体。
最近我不得不做一些类似的事情,我刚刚创建了另一个“层”,它将存储在datarow/datatable等中的数据转换为数据契约对象。服务层可以调用这个新的层方法,并将数据访问方法的结果作为参数。
下面是一个快速而肮脏的PSUEDOCODE示例:
public class personTranslator
{
public static PersonDataContract TranslateToContract(Datarow personDataRow)
{
PersonDataContract resultPerson = new Person;
resultPerson.FirstName = personDataRow["FirstName"];
resultPerson.LastName = personDataRow["LastName"];
.
.
[etc.]
return resultPerson;
}
}SERVICELAYER类
public PersonDataContract GetSpecificPerson([Parameters])
{
[other setup/validation code...]
return PersonTranslator.TranslateToContract(PersonDataAccess.GetPersonRow([Parameters]));
}发布于 2009-04-20 09:28:07
我建议使用类型化的DataRow-s,DataTable-s。类型化的DataRow和Dto对象并没有太大的区别。在性能方面,您必须测试普通的Dto-s是否会有所帮助(我对此表示怀疑)。至于互操作性,类型化的DataRow是普通类,因此它们与Dto对象一样具有互操作性。
https://stackoverflow.com/questions/767488
复制相似问题