Ошибка клиента службы WCF "лучшее совпадение перегруженного метода для XXX имеет недопустимые аргументы"
Здравствуйте, я создаю приложение MVVM, и моя база данных связана с проектом, у меня есть служба WCF, добавленная в мой проект, и у меня создана ссылка на службу, чтобы я мог добавить новые данные из своего приложения в свою базу данных.
В моей модели приложения есть команда, которая сохраняет нового пользователя в базе данных, и я создаю новый экземпляр моего клиента службы в этом файле C#, а затем команда сохраняется в файле службы. Однако, когда я вызываю эту команду, используя свой сервис, я получаю сообщение об ошибке: "наилучшее перегруженное соответствие метода для XXX имеет недопустимые аргументы", и я не могу понять, почему, потому что все, кажется, добавлено правильно.
Вот некоторый мой код, чтобы показать вам, что у меня есть в viewmodel, и именно в этой строке я получаю сообщение об ошибке (_serviceClient.SaveNewUser(newUser);):
public RelayCommand AddUserCommand { get; private set; }
private ServiceClient _serviceClient;
public AddUserViewModel()
{
_serviceClient = new ServiceClient();
AddUserCommand = new RelayCommand(() => ExecuteAddUserCommand());
}
private void ExecuteAddUserCommand()
{
User newUser = new User();
newUser.FirstName = this.FirstName;
newUser.LastName = this.LastName;
newUser.ContactNumber = this.ContactNumber;
newUser.Email = this.Email;
//service call
int userID = _serviceClient.SaveNewUser(newUser);
newUser.UserID = userID;
}
Тогда в service.svc.cs у меня есть:
[OperationContract]
public int SaveNewUser(User user)
{
using (var context = new SolutionEntities())
{
context.Users.AddObject(user);
context.SaveChanges();
return user.UserID;
}
}
Класс User выглядит следующим образом:
public partial class Client : EntityObject
{
public static Client CreateClient(global::System.Int32 userID, global::System.String firstName, global::System.String lastName, global::System.String contactNumber)
{
User user = new User();
user .UserID = userID;
user .FirstName = firstName;
user .LastName = lastName;
user .ContactNumber = contactNumber;
return user;
}
public global::System.Int32 UserID
{
get
{
return _UserID;
}
set
{
if (_UserID!= value)
{
OnUserIDChanging(value);
ReportPropertyChanging("UserID");
_UserID= StructuralObject.SetValidValue(value, "UserID");
ReportPropertyChanged("UserID");
OnUserIDChanged();
}
}
}
private global::System.Int32 _UserID;
partial void OnUserIDChanging(global::System.Int32 value);
partial void OnUserIDChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String FirstName
{
get
{
return _FirstName;
}
set
{
OnFirstNameChanging(value);
ReportPropertyChanging("FirstName");
_FirstName = StructuralObject.SetValidValue(value, false, "FirstName");
ReportPropertyChanged("FirstName");
OnFirstNameChanged();
}
}
private global::System.String _FirstName;
partial void OnFirstNameChanging(global::System.String value);
partial void OnFirstNameChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String LastName
{
get
{
return _LastName;
}
set
{
OnLastNameChanging(value);
ReportPropertyChanging("LastName");
_LastName = StructuralObject.SetValidValue(value, false, "LastName");
ReportPropertyChanged("LastName");
OnLastNameChanged();
}
}
private global::System.String _LastName;
partial void OnLastNameChanging(global::System.String value);
partial void OnLastNameChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String ContactNumber
{
get
{
return _ContactNumber;
}
set
{
OnContactNumberChanging(value);
ReportPropertyChanging("ContactNumber");
_ContactNumber = StructuralObject.SetValidValue(value, false, "ContactNumber");
ReportPropertyChanged("ContactNumber");
OnContactNumberChanged();
}
}
private global::System.String _ContactNumber;
partial void OnContactNumberChanging(global::System.String value);
partial void OnContactNumberChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public global::System.String Email
{
get
{
return _Email;
}
set
{
OnEmailChanging(value);
ReportPropertyChanging("Email");
_Email = StructuralObject.SetValidValue(value, true, "Email");
ReportPropertyChanged("Email");
OnEmailChanged();
}
}
private global::System.String _Email;
partial void OnEmailChanging(global::System.String value);
partial void OnEmailChanged();
Надеюсь, кто-нибудь увидит, где моя проблема, спасибо.