- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的问题是我们能否在 Entity Framework 4 中将一个上下文扩展到另一个上下文。以下是问题背景。
我正在使用 EF4 开发 Web 应用程序。我的 Web 应用程序有 3 个项目。
例如,电子邮件地址表可以由客户 (CRM) 和 CV 共享。要与另一个表共享一个表,我们应该能够将一个上下文(CV 上下文)扩展到另一个上下文(客户上下文)。有使用 Entity Framework 经验的人能否与我分享您的经验,看看这是否可行。
我们在三个类库中有 3 个 edmx 文件:
然后我们要使用核心类库edmx文件(Core.edmx)和cv.edmx(基本上cv表应该可以使用核心表中的表)。 同样,我们希望将 core.edmx 与 CRM.edmx 用于第三个项目
最佳答案
首先,您的 EDMX 不应该(实际上不能)彼此交谈。
在 Context -> EDMX -> Database 之间通常是 1-1。
更好的解决方案是将您的模型封装在存储库后面。
每个聚合根 一个存储库将为您提供一个 PersonRepository、CvRepository、CustomerRepository。
每个 DLL 可以公开一个存储库。
然后,您将需要一个可以与存储库一起工作的“服务层”。类似于“工作单元”。
例如,您可以创建一个 CvPersonService,它可以处理与 Person(核心)和 CV 存储库的交互:
using PersonRepository;
using CvRepository;
public class CvPersonService
{
public CvPerson GetHydratedCvPersonFromTwoRepositories()
{
var person = personRepository.Find(1); // get a person
var cv = cvRepository.Find(1); // get a cv
return new CvPerson { ThePerson = person, TheCv = cv };
}
}
需要注意的重要一点是,EF 不对数据库连接和上下文做任何假设。与特定上下文关联的数据库可以位于本地机器、开发服务器或云端。 EF 不知道(或不关心)数据库在哪里。您的配置中的 SQLProvider 特定于此。 EF 必须假设它可以在任何地方。
因此,您不能真正将查询从一个上下文“加入”到另一个上下文。这将如何工作?也许在“老派”中,您可以使用链接服务器,但对于像这样的 ORM 来说这是不可行的。
这样说:
你做不到吧? Entity Framework 也不能。 :)
即使所有三个 EDMX/Context 使用相同的数据库,也没关系。
以上将是一个更好的解决方案 - 以一种您可以通过流畅的存储库优雅地公开模型的方式重新构建它。
HTH
关于c# - Entity Framework 4,将一个 edmx 文件的上下文扩展到另一个 edmx 文件的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929825/
如何将浮点 10 字节十六进制字符串(Delphi 中的扩展数据类型)转换为 C# 数据类型? 例如:00 00 00 00 00 00 00 80 ff 3f 在 Delphi 1 最佳答案 涉及同
我正在阅读 this page上面写着 If one of the strings has an encoding prefix and the other doesn't, the one that
我有以下代码(作为示例),我想对其进行调整,以使功能区扩展到整个 xrange,如 geom_hline()做。功能区指示哪些值在可接受的范围内。在我的实际应用程序中,有时没有上限或下限,因此 hli
去年,斯科特·格思里 stated “如果您想要对执行的 SQL 进行绝对控制,您实际上可以覆盖 LINQ to SQL 使用的原始 SQL”,但我找不到描述可扩展性方法的文档。 我想修改以下 LIN
我尝试在我的应用中创建一个抽屉导航。我有 3 个当前选项(查看、声明、报告),当然这 3 个 Activity 已扩展到 fragment。在View 中,它有一个next 按钮,该按钮将转到另一个页
很抱歉,如果我的问题被重复,但我无法(或不知道如何谷歌)找到答案。我想使用 rxlifecycle-navi 库来将 rxjava 绑定(bind)到生命周期,所以我需要扩展 NaviActivity
有这个html: aaa 做的时候: $('#hi1').sayHi(); 我想收到一条“嗨”提醒 有人知道这是怎么做到的吗? 最佳答案 了解更多关于jQuery plugin authoring
我有一个 UIImageView 和一个 UITextView。当点击 UITextView 时,我需要 UITextView 在 UIImageView 上展开。我不知道该怎么做。 从这里 为此 最
以下语句: URLClassLoader ucl = (URLClassLoader) ClassLoader.getSystemClassLoader(); Class uclc = ucl.get
以下语句: URLClassLoader ucl = (URLClassLoader) ClassLoader.getSystemClassLoader(); Class uclc = ucl.get
$的意思是什么!在 shell 或 shell 脚本中?我正在尝试理解具有以下内容的脚本。 local@usr> a=1 local@usr> echo $a 1 local@usr> echo $!
我正在 GWT 中设计一个简单的应用程序,并且在客户端有不同的 View 。每个 View 都从 SimplePanel 扩展而来,并将根据需要添加到 RootPanel。 我的第一个 View 是
我尝试在 SQL Azure 选项卡中从 S2 扩展到 S3,但 S3 似乎不可用,尽管它已被引入。另外,我还有大量可用的 DTU,即 1900 左右。是否无法扩展到 S3?我是否需要导出数据库,然后
我有一个带有 JS、html 和 css 的自定义视频播放器。我的问题的关键是我没有预料到将其从一个视频扩展到两个视频,我希望重构它,以便我可以在一个页面上播放多个视频。我尝试将所有内容重写为 for
我当前正在开发的应用程序需要可扩展的实时通信。我们一直在研究并尝试 Firebase 实时数据库和 firestore。看来Firebase实时数据库更加成熟并且经过测试,而firestore仍处于测
当 pod 被 daemonset 控制时,pod 会出现一些错误,状态会是 CrashLoopBackOff ,我想删除这些 Pod 但不想删除 DaemonSet。 所以我想把daemonset缩
我有 Jframe 表单并创建了从中绘制图形的类,为此我需要将该 void 类扩展为 jframe 表单 package grafiktest; import java.awt.Color; impo
在布局和尺寸策略方面,我从来都不是太出色,所以这可能是一个简单的答案,但就是这样。 当我向 QTabWIdget 添加新选项卡并将小部件设置为 QSplitter 时,拆分器将使用给定的全部空间量。但
我在将我的 S4 对象转换回列表时遇到了一些问题。例如,以下嵌套的 S4 类: setClass("nssItem", representation(value = "numeric
在阅读了 DDD 的一些页面后,我了解了存储库模式,然后在应用程序中成功使用了它(我真的很喜欢它);然后我注意到 EntityManager 是 generic-repository-like,但是当
我是一名优秀的程序员,十分优秀!