访问多个表的模型的命名模式

时间:2011-08-04 05:39:54

标签: asp.net-mvc entity-framework naming-conventions

我所知道的是,我们命名具有表名的模型。 但是访问多个表的模型怎么样呢。 它们的命名标准应该是什么?

2 个答案:

答案 0 :(得分:1)

假设您的意思是在MVC模式的上下文中,模型是向外的,由Controller操纵和View消耗。应选择Model类的名称以帮助View和Controller的作者。我不同意Model的实现细节(数据库表)的名称必然是Model类名称的正确基础。

举一个简单的例子:假设我们有一个CUSTOMER表。然后我们创建一个Customer类,非常好,我们完全理解它。现在假设出于性能原因(在这个设计的例子中,不太可能,但在具有遗留数据库的实际系统中它发生)可能是为了一个完全不同的系统的好处,我们决定创建一个只包含几个列的CUSTOMER_SUMMARY表,并且一个CUSTOMER_DETAILS表,包含所有其余列。我们现在应该重命名我们的客户类吗?它从两个表中获取数据,因此我们不再符合我们的命名约定,但从View的角度来看,它是客户数据,它正是他们所需要的。我说“不”,名称完全正确,实施细节已经改变,但这对我们的消费者来说并不重要。

同样,如果我们有ORDERS,ORDER_LINES,PRODUCTS和一个包含订单信息的类,这可能会从所有三个表中获取数据,我会将该类称为订单。如果将来我需要从ORDERS获取的摘要数据,我可能会使用Class OrderSummary。我尝试从“外部”选择一个易于理解的名称。

答案 1 :(得分:0)

我认为没有直接的命名约定。您可以根据您的业务使用模型的真实域名。假设您要将AddressInfo, Street , City表映射到一个模型(域)类,那么名称将类似于Address

除了为一个模型(Domain)类映射多个表之外,在实体框架中不是一个好习惯。因为它会生成非常复杂的查询,从而降低性能