首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >域对象、POCOs和实体有什么区别?

域对象、POCOs和实体有什么区别?
EN

Stack Overflow用户
提问于 2011-05-27 23:20:24
回答 3查看 63.9K关注 0票数 92

我的印象是它们基本上都是一样的。模型对象也是一样的吗?

现在,在我的架构中,我有:

代码语言:javascript
复制
class Person 
{

    public string PersonId;        
    public string Name;
    public string Email;

    public static bool IsValidName() { /* logic here */ }
    public static bool IsValidEmail() { /* logic here */ }
}


class PersonService
{
    private PersonRepository pRepository;

    PersonService()
    {
        pRepository = new PersonRepository();
    }

    public bool IsExistingEmail(string email)
    {
        //calls repo method to see if email is in db
    }


    public Person GetPerson(email)
    {
        return pRepository.Get(email);
    }


    public void SavePerson(Person p)
    {
        if (Person.IsValidEmail(p.Email) && !IsExistingEmail(p.Email)
        {
            pRepository.Save(p);
        }
    }

}


class PersonRepository
{
    public void Save(Person p)
    {
        //save to db
    }

    public Person Get(string email)
    {
        //get from db
    }

    public bool IsExistingEmail(string email)
    {
        //see if email in db
    }

}

那么上面的哪些类是POCODomain ObjectModel objectentity

EN

回答 3

Stack Overflow用户

发布于 2011-05-27 23:24:24

它更多的是函数的内涵;域对象是特定于您的逻辑实现的东西,可能比简单的POCO更复杂;实体具有表示某种东西的内涵(通常引用持久性媒介),而POCO只是类的快速标识符。模型只是一个用来表示对象的术语(通常包含状态,通常处理UI或DB)。

这并不是说有任何功能上的区别,它们只是用不同的术语来更贴切地描述一些东西。比如赛车、卡车和家用轿车之间的区别。所有的都是汽车,但每个术语都更具描述性。

票数 18
EN

Stack Overflow用户

发布于 2011-05-31 17:10:07

在上面的答案中已经有了领域和模型的很好的解释。

在数据库中-上下文实体表示Entity Relationship Model ERD中的项。(即表中的一行)

Microsoft-Dotnet-EntityFramework-World中实体是指可以使用数据(基本)上下文从数据库加载和保存到数据库的对象。通常,一个实体在没有它的数据(基本)上下文的情况下不能存在。(单元)测试这些类的业务功能是很困难的。

Pocos (Plain Old CommonRuntime Objects)可以在没有PersistenceFramework (EntityFramework或NHibernate)的情况下存在,因此它们更容易测试。

单词poco是基于同样的原因在java世界中创建的pojo (plain old java object)的改编。

票数 13
EN

Stack Overflow用户

发布于 2011-05-27 23:30:18

域对象是应用程序的域层中的实体,例如。Address类。“模型”的意思是相同的--“域模型”中的一个实体。

POCO (普通老式CLR对象)是一个没有定义任何行为(方法)的对象,只包含数据(属性)。POCO通常用作DTO(数据传输对象),以在层之间传输数据,然后数据通常用于填充域对象/实体。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6154311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档