我编写了一个使用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
}
再一次,为什么我在位置上看不到任何实际的表属性/值?
答案 0 :(得分:0)
WCF服务需要[DataContract] + [DataMember]属性而不是[Serializable]。这可能是您没有获得属性值的原因。