【问题标题】:Using Entity Framework classes without database connection在没有数据库连接的情况下使用实体框架类
【发布时间】:2012-04-23 14:22:27
【问题描述】:

我有一个奇怪的情况。我已经直观地创建了一个数据模型并从中生成了一个数据库。该项目被两个项目引用:

  • ASP .NET 应用程序。
  • WinForms 应用程序。

ASP .NET 应用程序直接处理数据库,而我需要 WinForms 应用程序通过 Web 应用程序与数据库交互。

我创建了一个名为 API.aspx 的页面,并使用 HTTP POST 发送值并以 XML 格式获取结果。

但是,由于 WinForms 应用程序仍需要使用数据模型类,我在不创建数据库对象的情况下使用它们时遇到了问题。

在这种情况下使用什么好的策略?

【问题讨论】:

    标签: c# asp.net database winforms entity-framework


    【解决方案1】:

    如果您已通过松散耦合 (See the Repository Pattern)) 实现代码,那么您可以创建一个数据库存根,该存根将返回虚拟数据(或内存数据),直到您准备好插入实际的 EF 框架。

    这通常是创建清晰的关注点分离的好习惯。

    【讨论】:

    • EF 是否为此类场景提供任何内置工具?我正在尝试先查看代码,看看这是否让我在处理数据库上下文或内存中的类时更加灵活。
    • @RaheelKhan 不,这个场景实际上抽象了 ORM。但是,如果您真的需要,您可以在上下文之外使用 POCO。问题只会出现在您想与数据库交互的地方......这是我在快速谷歌上找到的一篇关于模拟 EF 上下文的文章:nogginbox.co.uk/blog/mocking-entity-framework-data-context
    • 致匿名投票者。您能否解释一下您不喜欢什么,以便我可以适当地调整我的答案?
    • 嗨贾斯汀,对不起 - 我什至不记得之前看过这个问题 - 我只能猜测我在 iPad 上查看网站时不小心触到了反对票。您能否以某种方式编辑您的答案,以便我可以删除反对票。真的很抱歉。
    【解决方案2】:

    这听起来像是 SOA 实现的候选者,而不是让 Windows 窗体应用程序直接与 Web 应用程序通信:

    【讨论】:

    • 是的,我同意,但这种抽象可以在稍后阶段完成。这是一个原型。
    • 另外,我还需要在桌面应用程序中支持离线模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    相关资源
    最近更新 更多