好吧,我使用Xamarin工作,我有一个使用实体框架的WebAPI。我已经可以将图像从手机发送到网络服务,但我想在数据库上正确创建所有关系的记录,所以基本上我有3个表要工作,如下所示:
模型图
在我的WebAPI中,我有两个控制器,一个用于处理图像上载,另一个用于处理事件。我试图在创建occurrenceimage记录时设置自定义ID,但没有成功。
ImageUploadController。cs
[HttpPost] public HttpResponseMessage UploadImage(string imageName) { var result = new HttpResponseMessage(HttpStatusCode.OK); if (Request.Content.IsMimeMultipartContent()) { Request.Content.LoadIntoBufferAsync().Wait(); Request.Content.ReadAsMultipartAsync(new MultipartMemoryStreamProvider()).ContinueWith((task) => { MultipartMemoryStreamProvider provider = task.Result; foreach (HttpContent content in provider.Contents) { Stream stream = content.ReadAsStreamAsync().Result; Image image = Image.FromStream(stream); var testName = content.Headers.ContentDisposition.Name; String filePath = HostingEnvironment.MapPath("~/Images/"); string nameImg = imageName + Guid.NewGuid(); String fullPath = Path.Combine(filePath, nameImg + ".jpg"); image.Save(fullPath); AddImageToDb(nameImg); } }); return result; } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); } } private void AddImageToDb(string imageName) { VisitDatabase.Image image = new VisitDatabase.Image() { urlImage = imageName + ".jpg" }; OccurenceImage occurenceImage = new OccurenceImage() { idOccurence = 18, Image = image, }; db.Image.Add(image); db.OccurenceImage.Add(occurenceImage); db.SaveChanges(); }
发生控制器。cs公司
[ResponseType(typeof(ActiveCitizen))] public IHttpActionResult PostOccurence(ActiveCitizen json) { Citizen citizen; if (!ModelState.IsValid) { return BadRequest(ModelState); } ActiveCitizen activeCitizen = json; var query = (from c in db.Citizen where c.ccbi == activeCitizen.NumDocument select c.idCitizen).SingleOrDefault(); Address address = new Address() { lat = 12, lon = 12, street = "Rua do Santuario", postalCode = "4490-554", locality = "Barcelos" }; OccurenceType occurenceType = new OccurenceType() { title = activeCitizen.Description, }; if (query == 0) { citizen = new Citizen() { ccbi = activeCitizen.NumDocument, nif = activeCitizen.NIF, Contact = new Contact() { name = activeCitizen.Name, email = activeCitizen.Email, phone = activeCitizen.Phone }, Address = address }; } else { citizen = db.Citizen.Find(query); } Occurence occurence = new Occurence() { solved = 0, occurenceDateTime = new DateTime(2017, 5, 23), Address = address, OccurenceType = occurenceType, Citizen = citizen }; db.Address.Add(address); db.OccurenceType.Add(occurenceType); if (query == 0) { db.Contact.Add(citizen.Contact); db.Citizen.Add(citizen); } db.Occurence.Add(occurence); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = occurence.idOccurence }, activeCitizen); }
提前感谢!
上面的代码是正确的,似乎问题出在表occurrenceimage中,字段idoccurrenceimage标识规范被禁用,只需要启用,并且工作正常。我希望这能帮助其他有这种新手问题的人!
问题内容: 我正在尝试使用JDBC在oracle数据库上创建Java源对象。 我要创建的源如下: 我已经尝试过使用execute方法,这给了我。 当我尝试在普通对象上使用execute方法时,出现错误:“ 有人知道我在做什么错吗?似乎在Google上也找不到任何内容。 编辑:这是我用来尝试执行脚本的代码(字符串包含您可以在上面看到的脚本,变量是对象。 如果我尝试使用Statement就是这样: 问
我有一个JavaApplet,它显示来自Derby数据库的2D表格数据。我也在使用Netbean。我希望这个应用程序在网页上。我已经将html文档和所有. class文件上传到服务器上的适当目录中。剩下的是访问数据库。 我想使用Embedded Derby,以便我的应用程序包含数据库(我对这个事实的理解正确吗?)。然后我应该能够将html和jar/class文件上传到服务器,我的应用程序将被部署。
问题内容: 我的项目中有注释驱动的hibernate功能。 现在,我想在列上创建索引。我当前的列定义是 我在这里添加注释 然后删除表并重新启动Tomcat服务器。实例化服务器后,创建了表,但是在以下查询中看不到新索引。 预期用新索引构造表。我在MySQL中使用InnoDB。 问题答案: 有趣的是,在Hibernate配置中,我正在使用。 这修改了一个现有的数据库。我是手动删除该表并重新启动Tomc
我使用与已安装的WAMPServer v-3.2.0关联的phpMyAdmin创建了一个MySQL数据库“testdatabase”,但是,当我尝试使用php连接数据库时,如下面代码中所列: 异常getMessage和GetTraceAssString打印以下错误消息: 连接失败:SQLSTATE[HY000][1049]未知数据库“testdatabase”#0 C:\wamp64\www\Te
问题内容: 我有一个在Java堆栈(Struts 2 + Spring + Hibernate)上运行的Web应用程序,并在MySQL中保持不变。我查看了NoSQL数据库,它们肯定比RDBMS更容易推理和使用。这是一个音乐流应用程序,用于存储艺术家信息并允许用户保存播放列表。 我想知道切换到NoSQL DB(CouchDB,MongoDB,Cassandra)是否有任何优势(性能,硬件成本,简化代
问题内容: 我有一个像这样的应用程序工厂 然后,我有一个脚本,可以在应用程序上下文之外获取CSV。该脚本是一个cron,每x小时运行一次 我想以某种方式更新应用程序正在使用的sqlite数据库。这可能吗? 问题答案: Flask-SQLAlchemy只需要一个应用程序上下文即可运行。您可以手动创建应用上下文。 这来自这里和这里的文档。