Raf*_*lho 4 c# asp.net entity-framework asp.net-web-api
嗯,我正在使用 Xamarin,并且我有一个使用实体框架的 WebAPI。我已经可以将图像从手机发送到网络服务,但我想在数据库上正确创建所有关系的记录,所以基本上我有 3 个表可以工作,如下所示:
在我的 WebAPI 中,我有两个控制器,一个用于处理图像上传,另一个用于处理事件。我尝试在创建 OccurenceImage 记录时设置自定义 ID,但它不起作用。
图片上传控制器.cs
[http邮报] 公共HttpResponseMessage上传图像(字符串图像名称) { var 结果 = new HttpResponseMessage(HttpStatusCode.OK); if (Request.Content.IsMimeMultipartContent()) { Request.Content.LoadIntoBufferAsync().Wait(); Request.Content.ReadAsMultipartAsync(new MultipartMemoryStreamProvider()).ContinueWith((task) => { MultipartMemoryStreamProvider 提供者 = 任务.Result; foreach(provider.Contents 中的 HttpContent 内容) { Stream 流 = content.ReadAsStreamAsync().Result; 图像图像 = Image.FromStream(stream); var testName = content.Headers.ContentDisposition.Name; String filePath = HostingEnvironment.MapPath("~/Images/"); 字符串 nameImg = imageName + Guid.NewGuid(); String fullPath = Path.Combine(filePath, nameImg + ".jpg"); 图像.保存(完整路径); AddImageToDb(nameImg); } }); 返回结果; } 别的 { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "此请求格式不正确")); } } 私有无效AddImageToDb(字符串图像名称) { VisitDatabase.Image 图像 = new VisitDatabase.Image() { urlImage = 图片名称 + ".jpg" }; OccurenceImage 发生图像 = new OccurenceImage() { id 出现次数 = 18, 图像=图像, }; db.Image.Add(图像); db.OccurenceImage.Add(occurenceImage); db.SaveChanges(); }
OccurrenceController.cs
[响应类型(typeof(ActiveCitizen))] 公共 IHttpActionResult PostOccurence(ActiveCitizen json) { 公民公民; if (!ModelState.IsValid) { 返回 BadRequest(ModelState); } ActiveCitizen activeCitizen = json; var query = (来自 db.Citizen 中的 c 其中 c.ccbi == activeCitizen.NumDocument 选择c.idCitizen).SingleOrDefault(); 地址 地址 = 新地址() { 纬度 = 12, 长 = 12, 街道=“Rua do Santuario”, 邮政编码 = "4490-554", 地点=“巴塞洛斯” }; OccurenceType 发生类型 = new OccurenceType() { 标题 = activeCitizen.Description, }; if (查询 == 0) { 公民=新公民() { ccbi = activeCitizen.NumDocument, nif = activeCitizen.NIF, 联系人 = 新联系人() { 名称 = activeCitizen.Name, 电子邮件 = activeCitizen.Email, 电话 = activeCitizen.Phone }, 地址=地址 }; } 别的 { 公民 = db.Citizen.Find(查询); } 发生次数 = new Occurence() { 已解决 = 0, 发生日期时间 = 新日期时间(2017年5月23日), 地址=地址, 发生类型=发生类型, 公民=公民 }; db.Address.Add(地址); db.OccurenceType.Add(occurrenceType); if (查询 == 0) { db.Contact.Add(公民.Contact); db.Citizen.Add(公民); } db.Occurence.Add(发生); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id =occurrence.idOccurence }, activeCitizen); }
提前致谢!
上面的代码是正确的,似乎问题出在表 OccurenceImage 上,字段idOccurenceImage身份规范已禁用,只需要启用并像魅力一样工作。我希望这可以帮助其他人解决此类新手问题!
归档时间: |
|
查看次数: |
915 次 |
最近记录: |