2011-12-19 77 views
0

我正在制作一个asmx Web服务,并使用LinqToSQL处理数据库。是否可以在Web服务中公开LinqToSQL生成的类

对于我来说,使用LinqToSQL生成的类作为参数或Web方法中的返回值似乎很容易。 像这样:

[WebMethod] 
public OperationResult Meet_ListMeets(string clientToken, out meet[] meets) 
{ 
    ServiceMeet s = new ServiceMeet(sqlCon, clientToken); 
    return s.ListMeets(out meets); 
} 

其中 “相遇” 是LinqToSQL类。 我发现meet类暴露为WSDL复杂类型,包括所有的依赖关系(例如,其他类可以通过数据库中的外键来满足)。

主要问题是“以这种方式使用类是否是一种好的做法?”。怎么样的安全? 我应该使用包装类来隐藏我的实体结构吗?

回答

1

这不是一个好习惯,而且很可能在某个时候遇到问题。更不要说所有额外的东西在电线上的开销。

我过去所做的就是将一个“inbetween”模型与我需要实际发送的字段进行交互,然后将它们映射回实际的对象。手动映射或使用.NET的许多映射工具包之一进行映射(查看NuGet)。

相关问题