gpt4 book ai didi

asp.net nHibernate 从映射的 View 中选择数据

转载 作者:行者123 更新时间:2023-12-02 14:40:13 39 4
gpt4 key购买 nike

我有两个表和一个 View :

TABLE "Table_1" (
"Id" INTEGER NOT NULL DEFAULT AUTOINCREMENT,
"Field_1" VARCHAR(11) NOT NULL,
PRIMARY KEY ( "Id" ASC )
) IN "system";

TABLE "Table_2" (
"Table_1_Id" INTEGER NOT NULL, //// (THIS FIELD HAVE A FOREIGN KEY WITH TABLE "Table_1" FIELD "Id")
"Field_2" VARCHAR(11) NOT NULL,
PRIMARY KEY ( "Table_1_Id" ASC )
) IN "system";

VIEW "vwView_1"()
AS
select
Id,
Field_1,
Field_2
from Table_1 key join Table_2

这是查看 map :

...
Table("vwView_1");
Mutable(false);
Id(x => x.Id);
Property(x => x.Field_1);
Property(x => x.Field_2);
...

这是查看数据库中的数据:

Id  Field_1  Field_2
1 Green Blue
1 Green Red
2 Black White
3 Orange Blue
6 Red Orange
6 Red Green

当我使用 nHibernate 获取数据时,我得到了以下数据:

Id  Field_1  Field_2
1 Green Blue
1 Green Blue
2 Black White
3 Orange Blue
6 Red Orange
6 Red Orange

我认为问题出在查看 map 中,但我找不到解决此问题的方法:(

有人有想法要解决吗?

最佳答案

您已将 Id 列映射为 Identifier 字段,因此 NHibernate 的一级缓存不会费心重新读取已缓存的行。这就是为什么具有相同 Id 值的所有值都具有相同的 Field_1 和 Field_2 值。

也许您可以在 View 中添加 ROW_NUMBER() 字段并将其映射为标识符。

关于asp.net nHibernate 从映射的 View 中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11145009/

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