C#WCF - ADO.NET实体模型 - DbSet为空?

时间:2014-03-09 15:54:59

标签: c# wcf entity-framework

我在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();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

据我所知,你不能通过WCF传递一个IEnumerable对象(除非你有某种双工绑定??)所以你最好转换成一个列表并返回如下所示的列表:

List<UserProfile> GetProfiles()
    {
        using (MusicOwnerDatabaseEntities context = new MusicOwnerDatabaseEntities())
        {
            return context.UserProfileSet.ToList();
        }
    }