【问题标题】:ADO.Net Entity Framework Custom Entity QuestionADO.Net Entity Framework 自定义实体问题
【发布时间】:2010-05-01 00:09:11
【问题描述】:

对...呼叫所有实体框架专家...

我的数据库中有一个名为 Bob 的表,我的 EF 模型包含此表的精确映射/定义。我还有一个名为 Jim 的表,它也映射到我的实体模型。 Bob 可以有多个 Jim,并且这种关系应该由外键约束来强制执行。所以这里的关系是玫瑰色的。但是,我还在名为 JimSnapshot 的 EF 模型中创建了自己的实体。该实体看起来与 Jim 实体完全相同。创建 Bob 时,会在该点拍摄 Jim 的快照,并将其作为非常扁平的 XML 存储在 Bob 中名为 JimSnapshotXML 的列中。

我想要做的是让 JimSnapshot 实体与 Bob 相关,并用 JimSnapshot 实体的填充版本替换 JimSnapshotXML 属性。或者至少让 Bob 可以访问 JimSnapshot 实体并隐藏 JimSnapshotXML 属性。

这可能吗?我该怎么做?这些有意义吗?

基本上我的目标是能够按如下方式访问上述内容(C#);

var snapshot = Bob.JimSnapshot;
var jim = Bob.Jim;

【问题讨论】:

  • 可能要考虑改写。还是别跟了。
  • 更好的描述?...在​​我的数据库中,我有一个名为 TableA 的表。 TableA 的一个列 (TableBSnapshotXML) 将 TableB 中的行的快照存储为 XML 。 XML 非常扁平。在我的实体框架模型中,我对 TableA 和 TableB 进行了完全建模,就像它们在数据库中一样(模型自动生成)。我还添加了 TableB 的副本并将其命名为 TableBSnapshot。当返回来自 TableA 的记录时,我实际上希望 TableBSnapshotXML 属性创建一个 TableBSnapshot 对象作为导航属性,以便我拥有一个实际对象而不是原始 XML。

标签: c# entity-framework entity-framework-4


【解决方案1】:

您可以尝试在扩展实体代码的分部类中创建一个包装器属性,该实体代码将在 getter 中创建 JimSnapshot 的实例,并在 setter 中编写正确的 XML。
但是,更改跟踪会有问题,您必须显式分配此属性或处理 SavingChanges 事件以将更改保存到 XML。

【讨论】:

  • 优秀。谢谢你。您能否详细说明一下以帮助我指出正确的方向?非常感谢。
猜你喜欢
  • 2020-08-18
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
相关资源
最近更新 更多