我一直在尝试将PetaPoco用于我正在工作的一个小项目,到目前为止它已经很棒了。
我创建了一些额外的非自动生成的部分类来保存各种计算值,如下面的示例所示。我无法将这些附加属性序列化为WCF响应,但自动生成的东西中的所有属性都可以很好地序列化。我尝试在这些自定义属性上使用[Serializable]和[DataContract],但它们完全破坏了WCF服务。
有什么想法吗?
public partial class Session
{
[ResultColumn]
public int ConnectedUserCount
{
get
{
AssistedServiceDB db = new AssistedServiceDB();
return db.ExecuteScalar<int>("SELECT Count(*) FROM Session_AssistedServiceUser WHERE IsConnected = 1");
}
}
答案 0 :(得分:1)
要使partial WCF DataContracts起作用,需要注意几件事。首先,如果另一个Session
类标有DataContract
,那么此类也需要以相同的方式标记。这假设ResultSession
类也可序列化和/或标记为DataContract
。另一个问题是WCF要求属性至少具有 private setters ,因此需要将ConnectedUserCount
属性更改为具有一个属性。