gpt4 book ai didi

NHibernate vs petapoco 加载机制

转载 作者:行者123 更新时间:2023-12-04 05:49:45 29 4
gpt4 key购买 nike

我很难理解 NHibernate 的 petapoco 加载机制。实际上我做了一个测试来比较两者在查询中的行为。

我的类(class)如下:
UserTest.cs具有以下属性:

private string name;
private int id;
private int customerId;

public int ID
{
get { return id; }
set { id = value; }
}

public string Name
{
get { return name; }
set { name = value; }
}

public int? CustomerID
{
get { return customerId; }
set
{
if (value != customerId)
{
customerId = value;
if (this.ID > 0)
{
DoSomeOtherWork();
}
}
}
}

当我做 User.Load在 NHibernate 中,我观察到 DoSomeOtherWork从未调用过,而在 PetaPoco 中,当我从加载 User 进行查询时如 Connection.db.Fetch<UserTest>(...)Connection.db.Query<UserTest>(...) , 我可以看到 DoSomeOtherWork叫做。

为什么呢?

有没有办法避免调用 DoSomeOherWork当使用 PetaPoco 使其具有与 NHibernate 相同的行为时?我不知道 t want to use PetaPoco.忽略 as I need to get and set the客户 ID`。

最佳答案

PetaPoco 它是一个微型 ORM(比 Nhibernate 轻得多),并在您获取记录时实现您的 POCO 对象。没有比这更神奇的了,所以答案是:
不,你不能避免调用属性的 setter 。

关于NHibernate vs petapoco 加载机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222550/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com