在Silverlight WCF RIA中创建DTO类的位置?

时间:2011-03-08 03:37:05

标签: silverlight wcf

我有一个包含20列的表,我只希望在UI上显示这些数据(不添加/编辑/删除)。我想知道,在DAL项目或Web项目中,为此表创建DTO类的适当位置在哪里?

3 个答案:

答案 0 :(得分:3)

您可以在Web项目中创建DTO,将实体映射到它,并让域服务调用返回它。您也可以返回实体并使用[Display(AutoGenerated = False)]标记您不想显示的属性。

答案 1 :(得分:0)

如果您使用的是LINQ to Entities或LINQ to SQL,则可以使用projection来限制从WCF服务请求返回的内容并使用匿名类型。使用LINQ select方法。然后,您不必创建DTO对象。

如果您提到的UI是Silverlight,则WCF数据服务(编辑:和WCF RIA服务不支持)支持服务投影。

LINQ示例:

context.Displays
   .OrderBy(d => d.Title)
   .Select (
       d =>
          new 
          {
              Title = d.Title
          })

Julie Lerman说要使用QueryView in an MSDN Magazine article。这可能是解决方案。

答案 2 :(得分:0)

如果您只想显示数据,更好的方法是创建一个View并直接在客户端获取它。这将更清洁,更容易。