在哪个层中必须定义实体类?

时间:2012-01-18 10:26:09

标签: c# java entity-framework

在创建必须定义图层(GUI,BLL,DAL)实体类的业务模型时?

4 个答案:

答案 0 :(得分:1)

您的实体是您的业务逻辑的一部分。在您的实体中,您可以定义业务规则。

他们应该不了解您使用的数据访问类型。这可以通过使用Repository模式来完成。在BLL中,您可以定义作用于实体的Repository接口。在单独的基础架构项目中,您将为存储库定义一个实现。

如果您将实体传递给GUI是一个选择问题。有时使用特制的类将数据传递给视图会很有用,但在小项目中,您可以选择将实体直接传递给GUI。

答案 1 :(得分:1)

这取决于您希望使用实体的方式。如果它是简单的POCO对象,用作DTO从db到你的应用程序,那么我认为最好的地方将是DAL。如果你想将你的实体用作业务逻辑的一部分并且它具有一些功能 - 那么BLL将是最好的地方。但我不认为在某些情况下应该在GUI中使用和定义

我认为将ViewModel用于任何GUI目的是一种很好的做法。因为当你使用EF时,它意味着你以某种方式与SQL交互(在大多数情况下)。所以你的数据是规范化的。对于其他手很多次,您需要GUI的非规范化数据。这就是为什么我更喜欢使用ViewModel进行GUI。

答案 2 :(得分:1)

您可以在两个地方定义

创建新的图层模型/实体(首选)

在数据访问层中定义它们

答案 3 :(得分:1)

我会说:在他们自己的层中。 GUI,业务层和数据访问层都使用实体。但GUI并不依赖于数据访问层,并且数据访问层不依赖于服务层。因此,实体必须位于自己的域层中。