2013-04-18 106 views
1

我得到了一个WCF服务,并使用实体框架与数据库进行通信。对象属性未被修改

当然,我不能返回我的实体对象,所以我创建了WCF的。

在这段代码中,我使用EF获取数据,这很好..但是当我使用for each语句时,usersForClient总是被指定为空。这是最后返回一个空列表,但usersList充满了用户。

UserMethods userMethods = new UserMethods(); 
List<Users> usersList = userMethods.getUsersByLastName(pLastName); 
List<wcfUser> usersListForClient = new List<wcfUser>(); 
wcfUser usersForClient = new wcfUser(); 

foreach (Users u in usersList) 
{ 
    usersForClient = new wcfUser(); 
    usersForClient = TranslateServerUserToClientUser(u,usersForClient); 
    usersListForClient.Add(usersForClient); 
} 

return usersListForClient; 

这是我的翻译方法:

private wcfUser TranslateServerUserToClientUser(Users serverSideUser, wcfUser clientSideUser) 
{ 
    clientSideUser.Age = serverSideUser.Age; 
    clientSideUser.Email = serverSideUser.Email; 
    clientSideUser.DateJoined = serverSideUser.DateJoined; 
    clientSideUser.LastName = serverSideUser.LastName; 
    clientSideUser.Name = serverSideUser.Name; 
    clientSideUser.UserName = serverSideUser.UserName; 
    clientSideUser.IdUser = serverSideUser.IdUser; 
    clientSideUser.DateLastLogin = serverSideUser.DateLastLogin; 
    clientSideUser.ProfilePicture = serverSideUser.ProfilePicture; 
    return clientSideUser; 
} 
+0

尝试调用您的服务类,就像它只是一个普通的.NET应用程序。如果可行,那么你的服务合同可能有问题。如果让Visual Studio通过“添加服务引用”生成客户端代码,则可能需要刷新它。 – cadrell0

+0

我试图创建一个用户,并从我的WCF中公开的getUsersByLastName方法中将其返回,并且用户可以很好地访问客户端..问题与usersListForClient始终为空 –

+0

为什么您不能返回实体对象? –

回答

0

尝试把ref关键字在wcfUser clientSideUser arg的前面。它应该看起来像

User TranslateServerUserToClientUser(Users serverSideUser, ref wcfUser clientSideUser)