我正在制作asmx 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);
}
其中“meet”是LinqToSQL类。 我发现meet类是作为WSDL复杂类型公开的,包括所有依赖项(例如,数据库中的外键所指示的其他类)。
主要问题是“以这种方式使用类是一种好习惯吗?”。安全性怎么样? 我应该使用包装类来隐藏我的实体结构吗?
答案 0 :(得分:1)
这不是一个好习惯,而且你很可能在某些时候遇到问题。更不用说所有额外残留物的开销了。
我过去所做的就是制作一个“inbetween”模型,只需要我需要实际发送的字段,并在它们进入时将它们映射回真实对象。你可以进行映射手动或使用.NET的许多映射工具包之一(在NuGet中查看)。