在多层应用程序中将EF与已连接的POCO一起使用

时间:2013-12-15 08:22:20

标签: c# entity-framework ef-code-first ioc-container poco

我正在开发一个多层桌面应用程序(洋葱架构),WinForm项目为UI,我使用EF code first访问我的DB,并且我的域模型,我想使用POCO,所以我有两个选择:

  • 已连接POCO s
  • 已断开连接POCO s

如果我使用断开连接的POCO,我必须在EF之外做很多事情并且不使用EF功能,因为:

  • 我必须在客户端保存和管理实体的State
  • 当我想保存对数据库的更改时,我必须同步客户端POCO的{​​{1}} 使用State实体的DbContext
  • 在将State添加到新创建的POCO期间,我必须控制 防止将具有相同密钥的两个实体添加到DbContext

因此,使用Connected DbContext似乎很正常,但在这种情况下,我认为我遇到了以下挑战:

  • 如果我想在多用户中使用POCO容器管理DbContext的生命周期 环境,并保持所有用户IoC的时间 获得DbContexts时间将其更改保存到数据库,这需要很大的时间 我认为,服务器内存量并不高效。
  • 我想在一次交易中保存我的实体的以下相关图表 enter image description here

我有这些问题:

  1. 如何在我的多层应用程序中使用已连接的POCO
  2. 在我的情况下,我应该使用POCO来管理DbContext的生命周期?
  3. 有没有办法制作(或更改)总图(在客户端),然后将其传递给IoC container保存?
  4. 是否有任何样本可以实现这种情况?

0 个答案:

没有答案