我有一个使用实体框架与数据库交互的典型 Web 应用程序。这是应用程序的分解。
- Demo.Core [包含日志记录(nlog 的东西)、助手类、系统范围的常量等]
- Demo.Entities [仅包含 Entity 框架实体或 edmx 文件 - 无上下文]
- Demo.Business [包含数据管理器、EF 上下文、使用 NRules 的业务规则、验证等]
- Demo.Web [包含作为前端的 MVC 应用程序]
现在我想在这个应用程序中使用 Akka.NET。我创建了一个封装 Akka System actor 的 Engine 类并创建了一个日志 actor (Demo.Core)。我认为引擎是一个类,它具有可以在系统范围内使用的发送功能,并且该功能决定哪个演员最适合处理消息。
但是,我无法决定如何根据 akka 管理数据上下文和实体类。
- 我应该有单独的 Actor 来检索每种类型的实体吗?还是一个 Actor 来检索所有实体?
- 我应该为不同角色设置多个具有不同上下文的参与者,例如 DBReaderActor 和 DBWriterActor 还是具有数据库上下文的单个参与者?
- 是否可以让引擎具有如上所述的单个发送功能,或者每个类都应该调用适当的参与者本身?
- 一个系统的参与者可以在多个程序集中吗?像 Demo.Core & Demo.Business?
如果我运行 Demo.Web 的两个实例,一个在 IIS 上,一个在 WebDev 上,它们会有 2 个独立的参与者系统还是一个单一的参与者系统(它们都使用相同的代码库)?
我是 Akka.NET 的新手,所以请不要在回答时假设事情