我有一个包含20列的表,我只希望在UI上显示这些数据(不添加/编辑/删除)。我想知道,在DAL项目或Web项目中,为此表创建DTO类的适当位置在哪里?
答案 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并直接在客户端获取它。这将更清洁,更容易。