|
|
1
2
你有没有考虑过 文件 实体 摘要 ? 在数据库方面,您将拥有 文件 仅包含所有发票/发票等共享字段的表。此字段将具有标识PK-例如DocId。 在其他表中,可以存储特定于该文档的其他元数据,PK是一个(非标识)字段DocId,它也是 文件 桌子。 在英孚方面, 文件 成为 摘要 实体,其他实体继承自此实体。这允许一个好的OO范例存在,并使您的代码更加健壮。 我们目前正在使用这个方案(EF4/SQL Server)。 你的场景听起来和我们的非常相似-考虑使用抽象类。 编辑 我想我会给我如何实现这个场景添加更多的信息,让你走上正轨。 作为对您Q状态的评论,我们对您的领域知之甚少,因此很难做出明智的意见。就我个人而言,我选择了 摘要 ,因为某些功能需要一次点击返回一个“混合包”的项目。当然,还有其他方法可以做到这一点(例如存储过程),但这允许在我的UI(顺便说一下,它是MVC)和我的服务层之间有一个很好的流畅接口。 像这样工作-这是我如何得到一个 单一的 职务:
我是这样得到的 混合袋 职位:
以下是我如何获得“评论”的集合(帖子的子项):
kicker是我的存储库,使用泛型实现,类型参数确保类型安全:
它的实现方式如下:
这个 类型 导致T(这是子表)的内部联接,因此只返回那些记录。 当然,我也有 服务层 在我的UI和存储库之间进行中介,但这应该会让您走上正确的轨道。 另外,您不必使用整个表达式谓词,我喜欢这样做,因为它可以最小化接口上的方法数量,并为控制器提供完全的查询能力,同时确保查询是 推迟 到服务层的点,但不是更远。 如果不喜欢这样,当然可以使用常规参数(字符串标题等)。 正如我所说,这个建筑适合 我的 领域需求,所以它可能不一定适合你的,但希望它能给你一些洞察力。 |
|
|
2
0
您可以在EF模型中多次放置一个表,然后将它们重命名为所需的实体。只需删除那些你不需要的列。 例如,放入文档实体。。。现在将其重命名为Invoice。现在再加一个,并命名为报价。。。在报价单上,单击PayDate并点击delete键。你可以定制这些你想要的!您也可以对其他ORMs做同样的事情,只需要做更多的工作。使用NHibernate,您可以手动创建模型,然后将它们映射到同一个表,但只映射您需要的内容。 |
|
|
Andrus · 如何在Linux中阅读期刊 1 年前 |
|
|
Miranda · 读取xml文件时路径错误中有非法字符 1 年前 |
|
|
Primdonm · 如何将自定义列表中的字符串值格式化为货币格式? 2 年前 |
|
|
Kiryl · Sitecore中自己的控制器 2 年前 |
|
|
Farid · 如何从数据库中填充Resource.resx文件值? 2 年前 |