问题标签 [entity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1921 浏览

nhibernate - NHibernate 上的值对象的单独表

我是 DDD 和 NHibernate 的新手。

在我当前的项目中,我有一个实体 Person,它包含一个值对象,比如说地址。今天,这很好。但也许有一天我会要求我的值对象(在本例中为地址)必须成为一个实体。

在尝试以 DDD 方式对此进行建模之前,以更加以数据为中心的方法,我有一个带有 Id 的表 Person 和另一个表 Address,其 PK 实际上是一个 FK,它是一个 Person 的 Id(即,一对一的关系)。

我一直在阅读,当我将值对象映射为组件时,它的值将被映射为我的实体表上的列(因此,我不会有一对一的关系)。

我的想法是,当需要时,我只需在我的地址表中添加一个代理键,然后它就变成一个实体。

我应该如何使用 NHibernate 进行设计?我是否应该已经将我的地址对象设为实体?

对不起,我什至不知道我的问题是否清楚,我真的迷路了。

0 投票
3 回答
2921 浏览

orm - DDD:子类和根实体

假设我有典型的实体Car

在我的域模型中,这个实体将是Aggregate的根实体

现在假设我专攻汽车。我创造了一辆法拉利,而快乐的法拉利车主喜欢给他们起一个绰号:

假设我有另一个实体,即公司实体。它将是另一个Aggregate的根实体。有很多人在公司工作,由实体Person表示。人可能有汽车。但是一家公司的总裁通常都很有钱,这种人,他们有法拉利:

在这种情况下,我的实体 President位于Company Aggregate内部,它持有对 Ferrari 的引用,这是另一个聚合的根实体的专业化。

鉴于 DDD,这是正确的吗?我可以/应该将根实体本身的专业化视为同一聚合的根实体吗?我的意思是,在我描述的领域中,实体 Ferrari 也是 Car Aggregate 的根实体(因为 Ferrari 也是 Car)?


现在假设我必须将此模型持久保存到 Database。我认为我的问题不取决于我将使用的 OR/M 框架。

我应该如何建造装有 Cars 的桌子?我应该构建一个带有“CarType”列(可能的值:“Car”、“Ferrari”)和一个可为空的 Nickname 列的 Cars 表吗?

或者我应该为汽车和法拉利建立一个表,后者的 PK 是汽车的 FK?

谢谢!

0 投票
1 回答
746 浏览

hibernate - Hibernate 映射继承

我有一个类 ClassA 映射到 TableA。我也有它的映射,它的实体名称为 EntityA。

现在,我需要在 TableA 的 ClassA 之间创建另一个名为 EntityATwo 的映射,但略有不同。

虽然我可以将 EntityA 的映射复制粘贴到 EntityATwo,但要维护它会非常困难。

因此,我的问题是,我如何为 EntityATwo 创建映射,其中我只声明 EntityATwo 和 EntityA 之间的不同之处,而其余的映射是从 EntityA 派生的。

谢谢,弗兰兹

0 投票
3 回答
9917 浏览

encoding - ' “ é == ' “ é,但是在什么编码/参考上?

0 投票
1 回答
3487 浏览

nhibernate - (Fluent) NHibernate - 问题映射 Id

我在映射 ID 时遇到问题。实体的结构如下:

在我的模型中,每个 EntityA 都必须包含一个 EntityB,并且存在的每个 EntityB 都是 EntityA 的一部分。这是一种常见的一对一关系

现在,到映射:

然后我创建一个EntityA,它自己创建一个EntityB。然后当我保存它时

NHibernate 抛出一个异常,“无法解析属性:Id”。

但是,我的日志显示 EntityA 已“插入”到数据库中,通过调试,我可以看到 EntityA.Id 被赋予了一个值(即,nhibernate 很好地保存了 entityA,检索了数据库生成的 Id 和相应地设置 entityA.Id 属性)。

但是,没有创建 entityB(空数据库,并且日志什么也不显示)。因此,在我看来,NHibernate 在通过“GeneratedBy.Foreign(“Id”)”定义保存 EntityB 时访问此属性时遇到问题。也许是因为属性“Id”不是EntityA的直接属性,而是来自EntityBase,但是我所做的对我来说看起来是正确的。

哪里有问题?我该如何解决?

谢谢!

编辑:这里我展示了一些堆栈跟踪,如果它可能有帮助的话。如您所见,它执行了 Cascade,并在另一个实体上执行了 SaveOrUpdate。

0 投票
2 回答
221 浏览

php - 从域实体方法中检索依赖/父级

如何从实体中检索依赖/父对象。

这应该从数据库中检索该人的地址对象并将其作为对象返回。这是一个很好的方法吗?如果可以这样做,代码应该是什么样子。

这样做意味着对象本身应该知道地址是与其相关的实体/值对象。为什么我想要这种语法是因为它在表示层看起来很干净。

person 类看起来像这样:

那么在 getAddress 方法中使用 $domain 对象并将关系信息保存在 Person 类中是否可以?

请回答,因为我一直在寻找答案。

0 投票
3 回答
3740 浏览

entity-framework - 实体框架、存储过程、ASP.NET GridView - 插入空行

我想在我的网格中添加一个空行。

在 GridViewInsert 事件中:

在保存更改中,我收到此错误:

用户代码未处理 System.Data.OptimisticConcurrencyException 消息 =“存储更新、插入或删除语句影响了意外数量的行 (0)。自加载实体以来,实体可能已被修改或删除。刷新 ObjectStateManager 条目。” Source="System.Data.Entity" StackTrace:在 System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache) 在 System.Data 的 System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter 适配器) .Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave) at System.Data.Objects.ObjectContext.SaveChanges() at Default1.GridViewInsert(Object sender, EventArgs e) in c:

0 投票
1 回答
339 浏览

c# - 使用实体框架选择子对象列表时如何获取对相关父对象的引用

使用 EF 在访问子对象列表时如何访问父属性中的值。

即我有一个项目对象和时间表对象

项目
ID
名称
...

TimeSheet
ProjectId
UserId
Date
TimeSpent
...

我了解如何取回项目及其相关的时间表,但是如果我想取回给定用户的所有时间表,然后简单地在每个时间表记录中显示项目名称,该怎么办。

例如项目名称、日期、所用时间

最佳实践是创建一个新实体来塑造该结果集,还是我应该能够返回 IEnumerable 并访问 .Project.Name 字段。

使用 Linq to Sql 或直接使用 ADO.net/SPs 等非常容易,但它在 EF 上杀死了我。

有任何想法吗?

0 投票
3 回答
2712 浏览

mysql - 在 Godaddy 上使用 MySQL 和实体框架的安全异常

SecurityException我们在 godaddy 上使用实体框架时得到了一个。该实体已针对 MySQL 存储进行配置。(v. 6.1.2)虽然异常有点奇怪......查看异常堆栈似乎意味着如果我们在站点的任何位置打开与 MySQL 的连接,那么我们应该得到相同的异常;但是,直接打开 MySQL 连接似乎在站点的另一部分工作......

这是验证:

有人遇到类似的问题吗?

完整的错误堆栈跟踪如下:

0 投票
6 回答
29373 浏览

wpf - 数据读取器不兼容...成员在数据读取器中没有对应的列

使用 VS 2008、SQL Server 2008 和 WPF 3.5,我对架构进行了一些更改并更新了模型。它编译并运行良好,直到客户端应用程序调用特定实体并且我得到以下信息(实际名称已替换):

我已经在服务应用程序中搜索了相关的实体和属性名称,尝试在表映射中重命名属性,似乎还有许多其他人报告了相同的错误,但似乎无法找到及时的答案...... .

...有谁知道如何追踪这一点,如果是这样,是否有解决方法或方法可以在未来避免?