我在使用.NET Web API控制器和实体框架时遇到了麻烦。 我通过客户端获得了RESTful Web服务。我在客户端使用Microsoft ASP.Net Web API客户端,在服务器端使用Entity-Framework Web API控制器。
当客户端应用程序转到AddContact方法时,客户端应用程序崩溃并给我这个错误:
未处理的类型' System.AggregateException'发生在mscorlib.dll。
我还调试了我的服务器端代码。在_contactRepository.SaveChanges()的行上;它抛出了一个例外:
类型的例外 ' System.Data.Entity.Infrastructure.DbUpdateException'发生在 EntityFramework.dll但未在用户代码中处理
客户端应用程序代码(使用ASP.NET Web API客户端):
public void AddContact(Contact newContact)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:21855/api/Contacts");
var resp = client.PostAsJsonAsync<Contact>("", newContact).Result;
resp.EnsureSuccessStatusCode();
}
服务器端代码(ApiController):
// POST: api/Contacts
[ResponseType(typeof(Contact))]
public IHttpActionResult PostContact(Contact contact)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var lol = contact;
var number = 1;
_contactRepository.Add(contact);
_contactRepository.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = contact.ContactId }, contact);
}