【问题标题】:Data Objects in Business Logic Layer when using Entity Framework使用实体框架时业务逻辑层中的数据对象
【发布时间】:2012-12-23 06:13:37
【问题描述】:

当我使用实体框架时,我是否需要编写代表数据库表的类?例如,我有以下表格:Account、Customer、Order、... 除了以下对象集之外,Entity Framework 还将为我提供 Account、Customer、Order 对象:Accounts、Orders、Customers .. 等。现在我要是否需要包装这些对象?

【问题讨论】:

    标签: c# sql-server entity-framework n-tier-architecture


    【解决方案1】:

    EF 生成表实体的对象表示。但它与域对象不同。

    应用程序应该使用域对象,而不是 EF 对象。

    我认为编写具体的领域类是个好主意。但这是一种复杂的方式,在某些情况下会增加不必要的复杂性。

    另一种方法是使用 EF CodeFirst,例如 http://msdn.microsoft.com/en-us/data/hh134698

    【讨论】:

    • 我正在使用旧风格,所以我使用的是数据库优先方法。我不熟悉域对象这个术语,但它假定这意味着用另一个类包装这些类。无论如何,我看不出增加额外的复杂性的意义。另一方面,删除这些类将意味着我的表示层将直接与实体框架对话,并且在表示层中将与数据访问层直接接触,这应该被禁止。
    • 您应该选择直接从表示层使用数据访问对象,这根本不是一个好主意,或者在表示层和数据访问层之间再建一层,business object 和映射的含义更准确在data objectsbusiness objects 之间。
    【解决方案2】:

    在不了解您的要求的情况下,我可能会简单地说“不”。 EF 生成所有域对象,并用对象集表示您的表。

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 1970-01-01
      • 2012-08-18
      • 2010-12-20
      • 2011-04-15
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      相关资源
      最近更新 更多