使用实体框架类没有数据库连接

问题描述:

我有一个奇怪的情况。我以可视方式创建了一个数据模型,并从中生成了一个数据库。该项目被两个项目引用:使用实体框架类没有数据库连接

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

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

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

但是,由于WinForms应用程序仍然需要使用数据模型类,所以我在运行时遇到了问题,而没有创建数据库对象。

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

如果你已经实现了松散的耦合(See the Repository Pattern)你的代码,那么你可以创建一个数据库存根将返回虚拟数据(或内存中的数据),直到你准备在实际EF框架堵塞。

这通常是很好的做法,建立清楚的关注点分离

+0

确实EF提供这样的场景中任何内置的工具?我试着看代码优先,看看是否给我更多的灵活性来处理数据库上下文类或内存中的类。 – 2012-04-23 15:00:04

+0

@RaheelKhan不,这种情况实际上将ORM抽象出来了。但是,如果您真的想要,您可以在上下文之外使用POCO。这个问题只会出现在你想与d​​b进行交互的地方......下面是一篇关于嘲笑EF上下文的文章:http://www.nogginbox.co.uk/blog/mocking- entity-framework-data-context – 2012-04-23 15:11:19

+0

给匿名downvoter。你能解释一下你不喜欢什么,这样我就可以适当地调整我的答案吗? – 2012-04-23 16:07:36

这听起来像一个SOA实施的候选人,而不是Windows窗体应用程序与Web应用程序直接通信。

+0

是的,我同意,但抽象可以在稍后阶段完成。这是一个原型。 – 2012-04-23 20:06:06

+0

另外我还需要在桌面应用程序中支持脱机模式。 – 2012-04-23 20:07:02