Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate hasmany возвращает objects / 3 сообщений из 3, страница 1 из 1
25.08.2018, 06:21
    #39693193
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate hasmany возвращает objects
Здравствуйте!
Подскажите пожалуйста, почему свойство public virtual ICollection<ADictOil> ADictOil { get; set; } сущности ADictOil , возвращает результат objects.
Пример результата: {ConsoleApplication1.ADictOil, ConsoleApplication1.ADictOil, ConsoleApplication1.ADictOil})
Пример результата если коллекции пуста: {})

А я рассчитывал получить на выходи List<ADictOil>().

Исходники сущностей:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
public class Catalog
{
    public virtual int Id { get; set; }
    public virtual string Articule { get; set; }
}
public class A : Catalog
{
    public virtual string Name { get; set; }
    public virtual ICollection<ADictOil> ADictOil { get; set; }
}
public class DictOil
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
}
public class ADictOil
{
    public virtual int Id { get; set; }
    public virtual A A { get; set; }
    public virtual DictOil DictOil { get; set; }
}

// MAPPING FLUENT
public class CatalogMap : ClassMap<Catalog>
{
    public CatalogMap()
    {
         Schema("dbo");
         Table("Catalog");
         Id(p => p.Id).Column("Id");
         Map(p => p.Articule).Column("Articule");
    }
}
public class AMap : SubclassMap<A>
{
    public AMap()
    {
         Schema("dbo");
         Table("A");
         KeyColumn("Id");

         Map(p => p.Name).Column("Name");
         HasMany(x => x.ADictOil).KeyColumn("AId");
    }
}
public class DictOilMap : ClassMap<DictOil>
{
    public DictOilMap()
    {
         Schema("dbo");
         Table("DictOil");

         Id(p => p.Id).Column("Id");
         Map(p => p.Name).Column("Name");
    }
}
public class ADictOilMap : ClassMap<ADictOil>
{
      public ADictOilMap()
      {
            Schema("dbo");
            Table("ADictOil");
            Id(p => p.Id).Column("Id");

            References(x => x.A).Column("AId");
            References(x => x.DictOil).Column("DictOilId");
      }
}


SQL бд:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
-- Catalog
CREATE TABLE [dbo].[Catalog](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Articule] [int] NULL,
 CONSTRAINT [PK_dbo.Catalog] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
-- A
CREATE TABLE [dbo].[A](
	[Id] [int] NOT NULL,
	[Name] [nvarchar](50) NULL,
 CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[A]  WITH CHECK ADD  CONSTRAINT [FK_dbo.A_dbo.Catalog_CatalogId] FOREIGN KEY([Id])
REFERENCES [dbo].[Catalog] ([Id])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[A] CHECK CONSTRAINT [FK_dbo.A_dbo.Catalog_CatalogId]
GO
-- ADictOil
CREATE TABLE [dbo].[ADictOil](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[AId] [int] NOT NULL,
	[DictOilId] [int] NOT NULL,
 CONSTRAINT [PK_dbo.ADictOil] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ADictOil]  WITH CHECK ADD  CONSTRAINT [FK_ADictOi_AIdl_A_Id] FOREIGN KEY([AId])
REFERENCES [dbo].[A] ([Id])
GO
ALTER TABLE [dbo].[ADictOil] CHECK CONSTRAINT [FK_ADictOi_AIdl_A_Id]
GO
ALTER TABLE [dbo].[ADictOil]  WITH CHECK ADD  CONSTRAINT [FK_dbo.ADictOil_dbo.ADictOil_DictOilId] FOREIGN KEY([DictOilId])
REFERENCES [dbo].[DictOil] ([Id])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[ADictOil] CHECK CONSTRAINT [FK_dbo.ADictOil_dbo.ADictOil_DictOilId]
GO
-- DictOil
CREATE TABLE [dbo].[DictOil](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](100) NULL,
 CONSTRAINT [PK_dbo.DictOil] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


Запрос Linq:
Код: c#
1.
2.
3.
4.
//< codes >
context.AddMap(m => m.FluentMappings.AddFromAssemblyOf<Catalog>());
var a = context.Query<A>().ToList();
//< codes >


Параллельно в другом проекте я использую EF, там с этим проблем нет.
...
Рейтинг: 0 / 0
25.08.2018, 08:02
    #39693205
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate hasmany возвращает objects
Nechtoвозвращает результат objects.С помощью какого умозаключения или инструментов ты пришел к такому странному выводу?
...
Рейтинг: 0 / 0
26.08.2018, 12:00
    #39693385
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate hasmany возвращает objects
Shocker.ProNechtoвозвращает результат objects.С помощью какого умозаключения или инструментов ты пришел к такому странному выводу?

Согласен с вами, что я поспешил со скороспешным умозаключением :)
Тип в, котором хранится набор таков - NHibernate.Collection.Generic.PersistentGenericBag.

Скажите пожалуйста как мне можно перейти к стандартному System.Collections.Generic.HashSet? Может есть какая-то метод управления результатом?
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate hasmany возвращает objects / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]