首先是代码,我将在下面描述我要查找的内容:
视图模型
private ServiceReference1.tblUser user;
public ServiceReference1.tblUser User
{
get
{
return user;
}
set
{
user = value;
OnPropertyChanged("User");
}
}
public ICommand _addUser;
public ICommand addUser
{
get
{
if (_addUser == null)
{
_addUser = new DelegateCommand(delegate()
{
try
{
Service1Client wcf = new Service1Client();
wcf.AddUser(User);
Users.Add(User);
wcf.Close();
}
catch
{
Trace.WriteLine("working...", "MyApp");
}
});
}
return _addUser;
}
}
WCF
bool IService1.AddUser(tblUser user)
{
try
{
context = new HotelBaseEntities();
context.AddTotblUsers(user);
context.SaveChanges();
return true;
}
catch (Exception e)
{
e.Message.ToString();
return false;
}
}
说明: 在 WCF 服务上,我有 ADO.Net EntityDataModel (EF 4),它包含表“tblUsers”。“tblUsers”具有名为“UserID”的主键列,它是自动增量的。WCF 上的方法用于向“tblUsers”添加新记录。我通过将属性“用户”发送到 WCF 来做到这一点。此字段(“UserID”)为 0。添加新记录时是否可以立即获取自动增量列的下一个值?我的意思是这个 0 值可以用下一个自动增量列的值来改变吗?我的数据库是在 SQL Server management studio 2005 中创建的。
编辑
我有将新用户添加到数据库的表格。它具有绑定到属性用户的文本框。此文本框用于为新用户插入名称、用户名和密码。我在“tblUsers”中有这些列。因此,当我用这个值填充文本框并单击按钮时,属性 User 会获取这些记录。但是 UserID 是 0 因为我没有用于插入的文本框。