ADO.NET Service に関する非常に簡単な演習があります。製品のリストをリスト ボックスに入れ、リスト ボックスで選択が変更されたときに、UnitPrice と UnitInStock を 2 つのテキスト ボックスに表示します。次に、テキスト ボックス内のデータを変更し、変更を保存します。
クライアント側のすべてのコードは次のとおりです。
namespace TestApp
{
public partial class Form1 : Form
{
NorthwindDataContext ctx = new NorthwindDataContext(new Uri("http://localhost:3540/Northwind.svc/"));
public Form1()
{
InitializeComponent();
var q = from p in ctx.Products
select p;
listBox1.DataSource = q.ToList();
listBox1.DisplayMember = "ProductName";
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var p = listBox1.SelectedItem as Product;
textBox1.Text = p.UnitPrice.ToString();
textBox2.Text = p.UnitsInStock.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
var p = listBox1.SelectedItem as Product;
p.UnitPrice = Decimal.Parse(textBox1.Text);
p.UnitsInStock = short.Parse(textBox2.Text);
try
{
//ctx.AttachTo("Products", p);
//ctx.BeginSaveChanges();
ctx.UpdateObject(p);
ctx.SaveChanges(SaveChangesOptions.None);
}
catch (Exception ex)
{
label3.Text = ex.Message;
}
}
}
}
ADO.NET サービスは問題なく、そのアクセス許可は次のように設定されています。
config.SetEntitySetAccessRule("*", EntitySetRights.All);
保存ボタンを押すと、ex.Message = "このリクエストの処理中にエラーが発生しました" というエラー メッセージが表示されました。
理由がわからない。助けてください。