好的,这是我整天都在处理的问题:
我正在使用WCF数据服务和XPO构建一个Web应用程序表单作为服务器端的ORM数据模型,其中包含一个方法,在客户端,我正在尝试从Web向数据库添加一行在authenfitication之后形成。
用户可以使用此代码轻松登录:
try
{
ctx = null;
ctx = new XpoContext(serviceRootUri);
ctx.Credentials = new NetworkCredential(UserName.Text, UserPass.Text);
var res = ctx.Users.FirstOrDefault();
FormsAuthentication.RedirectFromLoginPage(UserName.Text, Persist.Checked);
}
catch (SecurityException ex)
{
Msg.Text = "Erreur: " + ex.Message;
}
}
现在我想用这段代码在数据库中添加一行:
Uri u = new Uri(string.Format(LogIn.ctx.BaseUri + "/CreateUser?name='{0}'&pass='{1}'",
New_UserName.Text, New_UserPass.Text), UriKind.RelativeOrAbsolute);
LogIn.ctx.Execute(u, "GET");
ServiceReference1.Users user = new ServiceReference1.Users();
user.Nom = New_UserName.Text;
user.Pass = New_UserPass.Text;
LogIn.ctx.AddToUsers(user);
LogIn.ctx.SaveChanges();
但在前两行执行后会发生异常。
我在logIn页面中将我的上下文声明为静态:
private static Uri serviceRootUri = new Uri("http://localhost:28748/WcfDataService1.svc/");
public static XpoContext ctx;
您可以看到我使用LogIn.ctx在adduser Web表单中调用我的上下文(登录页面中的相同上下文)
谢谢