【发布时间】:2020-01-29 20:46:31
【问题描述】:
我正在用 C# 做一个家庭项目。我的项目包括 EF。它有一个数据库、一个包含所有模型类的 EF 自动生成的实体类库、一个存储库层和一个表示层。我希望表示层独立于数据层。我以为我制作了另一个包含实体接口的层,因此在上层中,我可以仅引用接口层并且仍然能够传递数据,而不会意外修改数据或依赖于数据。但是,这不起作用,因为模型生成器类会引发属性未映射的异常。我现在很困惑。我怎么能做到这一点?我应该考虑任何设计模式吗?
谢谢。
【问题讨论】:
-
你能告诉我们你得到了什么以及你得到了什么异常吗?
-
我查看了您为我提供的答案。这就是我正在做的事情,但是我没有创建另一个部分类,而是创建了声明所有模型属性的接口。它构建得很好,但是当我想遍历这样的实体时:` var stuff = entityRepo.GetAll(); Console.WriteLine("实体:"); foreach (var item in stuff) { //something }` 在迭代时抛出错误:System.InvalidOperationException: 'The type 'AppInterfaces.IEntity' was not mapped.
-
在分层架构中,较高层可能依赖于较低层。而且你总是依赖于你的数据模型。在某些情况下,您可以插入一个中间层以最小化更改的范围,但这实际上既不是这里也不是那里。你的表现层永远不会完全独立于数据层。
标签: c# entity-framework interface layer