C# 这是干净的数据模式吗?

C# 这是干净的数据模式吗?,c#,asp.net-mvc,entity-framework,design-patterns,C#,Asp.net Mvc,Entity Framework,Design Patterns,表示层获取和保存的每一条数据都尽可能简单,不附带ef上下文信息的模式的名称是什么 例如 这是否建议在MVC中使用?我看到很多控制器和视图模型使用ef上下文的例子。我觉得这是一种坏习惯 注:我对干净数据模式的引用只是我的最佳猜测,而不是对实际模式的引用。我从未遇到干净数据模式。。但这看起来更像是一张照片 通常在应用此模式时,域对象上有Insert、Update和Delete方法 这几天你很少看到这种方法。人们倾向于保持持久性逻辑和业务逻辑的解耦。。然而,这种方法使你走上了它们相互交织的道路。这使得

表示层获取和保存的每一条数据都尽可能简单,不附带ef上下文信息的模式的名称是什么

例如

这是否建议在MVC中使用?我看到很多控制器和视图模型使用ef上下文的例子。我觉得这是一种坏习惯


注:我对干净数据模式的引用只是我的最佳猜测,而不是对实际模式的引用。

我从未遇到干净数据模式。。但这看起来更像是一张照片

通常在应用此模式时,域对象上有Insert、Update和Delete方法


这几天你很少看到这种方法。人们倾向于保持持久性逻辑和业务逻辑的解耦。。然而,这种方法使你走上了它们相互交织的道路。这使得测试变得更加困难,代码库变得不易更改。

我倾向于使用的命名模式是repository模式,其中repository封装了如何使用数据访问层的实现细节。这样,您就可以从EF或其他任何类型切换,而无需了解控制器层代码


对我来说,这看起来更受领域驱动。。我不确定我是否遇到过干净的数据模式。你可能认为A是活动记录,我的CRUD方法应该在管理器类中,而不是在对象类中。对象类将尽可能简单,管理器类包含所有业务逻辑。我还希望在业务逻辑和持久性逻辑之间进行分离,但我在这里关注的是表示层和业务层之间的分离。这对我想要实现的目标来说似乎太复杂了。您知道一种更简单的类似模式吗?存储库的实现只需要它需要的复杂程度就可以了。我的存储库类只公开使用它们的类型中所需的特定方法。
CustomerManager manager = new CustomerManager();
Customer customer = manager.GetCustomerByEmail(string emailAddress);
DoSomething(customer);
manager.Save(customer);