2011-05-30 49 views
1

我写了一个使用SubSonic进行数据检索的基本WCF服务。使用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和地理位置已经与[序列化]已自动装饰。

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

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

所以再次,为什么我看不到任何我的实际表属性/值的位置:

的服务如下消耗?

回答

0

WCF服务需要[DataContract] + [DataMember]属性而不是[Serializable]。这也许是你没有得到属性值的原因。

+0

完美,谢谢。现在我看到以前的成员曾经建议使用DataContract和DataMember。我误解了我对Serializable的印象。谢谢! – ElHaix 2011-05-30 13:16:56