我在visual studio中基于现有数据库创建了一个新的WCF项目。 我做了两次手术。一个操作将记录(createProfile)写入数据库,一个检索数据(GetProfiles)。我的项目有3个文件:web.config,edmx文件和我的svc类。
CreateProfile工作正常,我在SQL中检查并创建了记录。 GetProfiles永远不会给出响应。当我调试context.UserProfileSet时总是计算0个值。
关于出了什么问题的任何建议?
[DataContract]
public partial class UserProfile
{
public int Id { get; set; }
[DataMember]
public string UserName { get; set; }
}
public class MusicOwnerService : IMusicOwnerService
{
IEnumerable<UserProfile> GetProfiles()
{
using (MusicOwnerDatabaseEntities context = new MusicOwnerDatabaseEntities())
{
return context.UserProfileSet.AsEnumerable();
}
}
public void CreateProfile()
{
using (MusicOwnerDatabaseEntities context = new MusicOwnerDatabaseEntities())
{
context.UserProfileSet.Add(new UserProfile { UserName = "John" });
context.SaveChanges();
}
}
}
答案 0 :(得分:1)
据我所知,你不能通过WCF传递一个IEnumerable对象(除非你有某种双工绑定??)所以你最好转换成一个列表并返回如下所示的列表:
List<UserProfile> GetProfiles()
{
using (MusicOwnerDatabaseEntities context = new MusicOwnerDatabaseEntities())
{
return context.UserProfileSet.ToList();
}
}