使用SubSonic从WCF服务中丢失对象属性?

时间:2011-05-30 01:33:35

标签: c# wcf subsonic wcf-client datacontract

我编写了一个使用SubSonic进行数据检索的基本WCF服务。

发布服务后,我在C#应用程序中使用它。当调用使用该SubSonic查询的方法时,我从数据库中获取正确数量的对象,但它们都不包含数据库属性及其值。它看起来只有SubSonic属性。

SubSonic DAL包含在WCF服务项目中引用的单独项目中。

WCF服务接口:

   [OperationContract]
   GeoLocationCollection GetGeoLocations(long websiteID);

工人方法:

    public GeoLocationCollection GetWebsiteGeoLocations(long websiteID)
    {
        GeoLocationCollection locationsCollection = new Select()
                                .Where(GeoLocation.Columns.WebsiteID).IsEqualTo(1)
                                .From(GeoLocation.Schema)
                                .ExecuteAsCollection<GeoLocationCollection>();
        return locationsCollection;
    }

GeoLocationCollection和GeoLocation都已使用[Serializable]自动修饰。

服务按如下方式使用:

MyService.MyServiceClient client = new MyService.MyServiceClient();
var result = client.GetWebsiteGeoLocations(1);

foreach (MyService.GeoLocation location in result)
{
    // do stuff
}

再一次,为什么我在位置上看不到任何实际的表属性/值?

1 个答案:

答案 0 :(得分:0)

WCF服务需要[DataContract] + [DataMember]属性而不是[Serializable]。这可能是您没有获得属性值的原因。