我有如下分层:
UI - Web App => 引用 BLL 和实体
BLL - 业务逻辑(验证)=> 参考 DAL 和实体
实体 - 数据载体 (POCO) => 无参考
DAL - 数据上下文 EDMX => 无参考
我有一个非常基本的问题,因为这是我第一个绝对隔离的项目。如果我想在 UI 级别设置我的对象的 EntityState (Added/Modified/Deleted),我该怎么做。因为使用上述结构,我将无法访问DataContext。
因为据我所知设置实体状态,数据上下文是一项任务。
我已经阅读了很多关于 SO 的问题,但没有人能澄清这个疑问。我知道另一种方法是维护自定义 State 属性@实体级别。
我已经读过 datacontext 应该限于 DAL。将 EntityState 设置为 @BLL/UI 是一种不好的做法吗?
我是这种架构的 EF 新手。请帮忙。
我已经经历了以下So问题但没有弄清楚,可能是由于我对SOC缺乏了解:
3.如果 Entity Framework / DbContext 是 DAL / Repository,它在 3 层架构中的位置是什么?
4.实体框架和层分离
编辑 1: 我仍然关心的一件事是在 DAL 中再次循环遍历对象层次结构,只是为了设置它们的 EntityState。我有一个非常嵌套的层次结构。如果我必须在平面结构中做同样的事情,我将不得不在填充对象的 UI 中设置一次,然后可以调用 context.savechanges()。
但是在这里我为实体创建了一个虚拟状态属性,我可以设置@UI,然后将其转换为EntityState.Modified @DAL。这是一个正确的方法吗?