WCF与AdventureWorks SQL Server数据库

时间:2011-12-26 18:16:44

标签: sql-server wcf

我正在使用AdventureWorks SQL Server数据库(表名Person)测试WCF工具。

wcftestclient.exe中进行测试时,会显示红色图标并显示:

  

WCF测试客户端不支持此操作,因为它   使用类型AdventureWorksDbWcf.Person

这是service.svc.cs服务类。

namespace AdventureWorksDbWcf
{   
    public class Service : IService
    {
        AW_DataClassesDataContext db = new AW_DataClassesDataContext();

        public Person GetOnePerson(int BusinessEntityID)
        {
            var _person = from one in db.Persons
                          select one;

            Person onlyOnly;

            return onlyOnly = _person.First<Person>();

        }

        public List<Person> ListOfPeople()
        {
            var _person = from one in db.Persons
                          select one;

            List<Person> list = _person.ToList();

            return list;
        }
    }
}

更新:这是IService

[的ServiceContract]     公共接口IService     {         [OperationContract的]         Person GetOnePerson(int BusinessEntityID);

    [OperationContract]
    List<Person> ListOfPeople();

}

我错过了什么吗?

请告诉我。

感谢,

2 个答案:

答案 0 :(得分:1)

您必须使用相应的[DataContract]属性和您希望使用[DataMember]公开的字段来装饰Person类。

如果您正在使用为表自动生成类的DataEntity或LinqToSQL,请注意最佳做法是创建服务使用的“数据”类,而不是发送属于您业务的类逻辑。看看IDesign's WCF coding standards

答案 1 :(得分:0)

检查Person类的实现,但我认为它应该是好的,因为如果我没有弄错的话,它是一个生成的类。

您的界面是否具有正确的服务合同和操作合同?

WCF tutorial