Web services 在web服务中公开LinqToSQL生成的类可以吗

Web services 在web服务中公开LinqToSQL生成的类可以吗,web-services,linq-to-sql,wsdl,Web Services,Linq To Sql,Wsdl,我正在制作一个asmx web服务,并使用LinqToSQL处理数据库 对于我来说,在web方法中使用LinqToSQL生成的类作为参数或返回值似乎很容易。 像这样: [WebMethod] public OperationResult Meet_ListMeets(string clientToken, out meet[] meets) { ServiceMeet s = new ServiceMeet(sqlCon, clientToken); return s.ListM

我正在制作一个asmx web服务,并使用LinqToSQL处理数据库

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

[WebMethod]
public OperationResult Meet_ListMeets(string clientToken, out meet[] meets)
{
    ServiceMeet s = new ServiceMeet(sqlCon, clientToken);
    return s.ListMeets(out meets);
}
其中“meet”是一个LinqToSQL类。 我发现meet类被公开为WSDL复杂类型,包括所有依赖项(例如数据库中外键引用的其他类)

主要的问题是“这样使用类是一种好的实践吗?”。保安怎么样?
我是否应该使用包装器类来隐藏实体结构?

这不是一个好的做法,您很可能会在某个时候遇到问题。更不用说电线下面那些多余的杂物了

我过去所做的是制作一个“中间”模型,其中只包含我需要通过导线实际发送的字段,并在输入时将它们映射回真实对象。您可以手动进行映射,也可以使用.NET的众多映射工具包之一(在NuGet中查找)