Questions tagged «orm»

对象关系映射(ORM)是一种用于将面向对象的系统映射到关系数据库的技术。使用其他标签指示编程语言([java],[sql],[python]),数据库系统([postgreSQL],内容管理系统([django]),框架([flask],[spring],[laravel) ]),应用程序环境([android],[node.js])和其他可用于搜索并具有观察者的标签。

6
Django“无法添加或更新子行:外键约束失败”
我有一个模型Coupon,以及模型Photo与ForeignKey它: class Photo(models.Model): coupon = models.ForeignKey(Coupon, related_name='description_photos') title = models.CharField(max_length=100) image = models.ImageField(upload_to='images') 我在管理员中设置了内联,因此现在我可以从管理员将照片添加到优惠券中。 我尝试添加一个,并且上传成功,但是随后出现此错误的是Django的调试页面: IntegrityError at /admin/coupon/coupon/321/ (1452, 'Cannot add or update a child row: a foreign key constraint fails (`my_project`.`coupon_photo`, CONSTRAINT `coupon_id_refs_id_90d7f06` FOREIGN KEY (`coupon_id`) REFERENCES `coupon_coupon` (`id`))') 这是什么,我该如何解决? (如果重要,这是一个MySQL数据库。) 编辑:我在具有稍微不同的数据集的Sqlite3数据库上尝试过它,并且它起作用了,所以也许在当前的DB中有松散的数据?如何找到并删除它?


1
实体框架6.0下的ORM实体与域实体
我偶然发现了以下两篇文章,第一篇和第二篇,作者在摘要中指出,不应将ORM实体和域实体混淆。 当我使用“代码优先”方法使用EF 6.0进行代码编写时,我正好面对此问题。我将POCO类用作EF中的实体以及域/业务对象。但是我经常遇到这样的情况,我将一个属性定义为public或将一个导航属性定义为virtual只是因为EF Framework迫使我这样做。 我不知道该怎么作为这两篇文章的底线?例如,我是否应该为实体框架真正创建一个CustomerEF类,为我的域创建一个CustomerD。然后创建一个使用CustomerD的存储库,将其映射到CustomerEF,然后进行一些查询,然后将接收到的CustomerEF映射回CustomerD。我以为EF就是将域实体映射到数据。 因此,请给我一些建议。我是否忽略了EF能够为我提供的重要信息?还是这是EF无法完全解决的问题?在后一种情况下,什么是解决此问题的好方法?

5
是否应该使用实体框架4.1和MVC3启用或禁用动态代理?
有人可以提供一些建议或指出一些博客/文章来帮助做出这一决定吗?代理对我来说似乎很陌生,我不愿意使用它们。我喜欢通过在模型中使用虚拟属性来控制延迟加载的功能,但这几乎是我可以看到的所有好处。我的应用程序是一个简单的MVC Web应用程序,当实体经历更改状态时,我不需要为上下文绑定任何挂钩。 无论如何,这是我目前优缺点非常有限的清单,请让我知道我是否在这方面不满意。 优点 在“保存”或“更新”上,我可以无缝地应用“更改” 延迟加载配置非常容易。 缺点 对于我的实体,以前从未使用过代理,这是一种方法上的变化,对我自己和团队成员而言似乎不舒服。 难以调试。 如果我要序列化/反序列化,则需要额外的代码 在“保存”或“更新”上,代理必须与从上下文中检索到的对象相同。

12
Hibernate,iBatis,Java EE或其他Java ORM工具
我们正在计划大型的企业应用程序。在经历了J2EE的痛苦之后,我们将重点放在评估休眠状态上。 新的Java EE API看起来更简单。我还阅读了一些有关Hibernate和iBatis的好东西。我们的团队对任何框架都缺乏经验。 我想确定5个主要比较点 学习曲线/易用性 生产率 可维护性/稳定性 性能/可伸缩性 轻松排除故障 如果您要管理一个由约2名J2EE经验的开发人员组成的团队,那么您将使用哪种ORM工具,为什么呢?

5
在Doctrine 2中指定小数字段类型时,小数位数和精度是什么意思?
我正在为我的Symfony2应用程序创建一个小数字段以在Doctrine2中保存财务数据。 当前,它看起来像这样: /** * @ORM\Column(type="decimal") */ protected $rate; 当我输入一个值并将所述值持久保存到数据库时,将其四舍五入为整数。我猜想我需要为该字段设置精度和比例类型,但是我需要有人确切解释它们的作用? 该Doctrine2文档说: precision:十进制(精确数字)列的精度(仅适用于十进制列) scale:小数(精确数字)列的小数位数(仅适用于小数列) 但这并不能告诉我很多。 我猜精度是要舍入的小数位数,因此我假设应该为2,但是小数位数是多少?规模是重要数字吗? 我的现场声明应该是这样吗?:- /** * @ORM\Column(type="decimal", precision=2, scale=4) */ protected $rate;

3
将DTO类与ORM一起使用时,C#8中的可空引用类型
我在具有数据传输对象(DTO)类的项目中激活了此功能,如下所示: public class Connection { public string ServiceUrl { get; set; } public string? UserName { get; set; } public string? Password { get; set; } //... others } 但是我得到了错误: CS8618:不可空的属性'ServiceUrl'未初始化。考虑将属性声明为可为空。 这是DTO类,因此我没有初始化属性。这是初始化类以确保属性为非null的代码的职责。 例如,呼叫者可以执行以下操作: var connection = new Connection { ServiceUrl=some_value, //... } 我的问题:启用C#8的可空性上下文后,如何处理DTO类中的此类错误?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.