【问题标题】:Missing object properties from a WCF service with SubSonic?使用 SubSonic 的 WCF 服务缺少对象属性?
【发布时间】:2011-05-30 01:33:35
【问题描述】:

我编写了一个使用 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
}

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

【问题讨论】:

    标签: c# wcf subsonic wcf-client datacontract


    【解决方案1】:

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

    【讨论】:

    • 完美,谢谢。现在我看到了以前的成员对 DataContract 和 DataMember 的建议。我对 Serializable 的印象是错误的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2018-02-06
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    相关资源
    最近更新 更多