T_BarChart:
Code: Select all
CREATE TABLE [dbo].[T_BarChart]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Name] NVARCHAR(50) NOT NULL,
[IntervalTypeId] INT NOT NULL,
[ViewId] INT NOT NULL,
CONSTRAINT [FK_T_BarChart_To_T_IntervalType] FOREIGN KEY ([IntervalTypeId]) REFERENCES [T_IntervalType]([Id]),
CONSTRAINT [FK_T_BarChart_To_T_Views] FOREIGN KEY ([ViewId]) REFERENCES [T_Views]([Id])
)
Code: Select all
CREATE TABLE [dbo].[T_BarChart_To_T_DataColumns] (
[BarChartId] INT NOT NULL,
[ColumnNameId] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_T_BarChart_To_T_Columns] PRIMARY KEY CLUSTERED ([BarChartId] ASC, [ColumnNameId] ASC),
CONSTRAINT [FK_T_BarChart_To_T_Columns_T_BarChart] FOREIGN KEY ([BarChartId]) REFERENCES [dbo].[T_BarChart] ([Id]),
CONSTRAINT [FK_T_BarChart_To_T_Columns_T_DataColumns] FOREIGN KEY ([ColumnNameId]) REFERENCES [dbo].[T_DataColumns] ([ColumnID])
);
Code: Select all
CREATE TABLE [dbo].[T_DataColumns](
[ColumnID] [uniqueidentifier] NOT NULL,
[ColumnName] [varchar](100) NOT NULL,
[XMLTag] [varchar](50) NOT NULL,
[ColumnDesc] [varchar](250) NULL,
[FunctionTypeId] [int] NOT NULL,
[UDFName] [varchar](50) NULL,
[SortOrder] [int] NOT NULL,
[IsActive] [bit] NOT NULL,
CONSTRAINT [PK_T_DataColumns] PRIMARY KEY CLUSTERED
(
[ColumnID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
)
DashboardNHModel.TBarChart.hbm.xml:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="NHDashRepository" namespace="NHDashRepository" xmlns="urn:nhibernate-mapping-2.2">
<class name="TBarChart" table="T_BarChart" schema="dbo">
<id name="Id" type="Int32">
<column name="Id" not-null="true" precision="10" scale="0" sql-type="int" />
<generator class="identity" />
</id>
<property name="Name" type="String">
<column name="Name" not-null="true" length="50" sql-type="nvarchar" />
</property>
<many-to-one name="TIntervalType" class="TIntervalType">
<column name="IntervalTypeId" not-null="true" precision="10" scale="0" sql-type="int" />
</many-to-one>
<many-to-one name="TView" class="TView">
<column name="ViewId" not-null="true" precision="10" scale="0" sql-type="int" />
</many-to-one>
<set name="TDataColumns" table="T_BarChart_To_T_DataColumns" schema="dbo" inverse="true" generic="false">
<key>
<column name="BarChartId" />
</key>
<many-to-many class="TDataColumn" fetch="join">
<column name="ColumnNameId" />
</many-to-many>
</set>
</class>
</hibernate-mapping>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="NHDashRepository" namespace="NHDashRepository" xmlns="urn:nhibernate-mapping-2.2">
<class name="TDataColumn" table="T_DataColumns" schema="dbo">
<id name="ColumnID" type="Guid">
<column name="ColumnID" not-null="true" sql-type="uniqueidentifier" />
<generator class="assigned" />
</id>
<property name="ColumnName" type="String">
<column name="ColumnName" not-null="true" length="100" sql-type="varchar" />
</property>
<property name="XMLTag" type="String">
<column name="XMLTag" not-null="true" length="50" sql-type="varchar" />
</property>
<property name="ColumnDesc" type="String">
<column name="ColumnDesc" not-null="false" length="250" sql-type="varchar" />
</property>
<property name="FunctionTypeId" type="Int32">
<column name="FunctionTypeId" not-null="true" precision="10" scale="0" sql-type="int" />
</property>
<property name="UDFName" type="String">
<column name="UDFName" not-null="false" length="50" sql-type="varchar" />
</property>
<property name="SortOrder" type="Int32">
<column name="SortOrder" not-null="true" precision="10" scale="0" sql-type="int" />
</property>
<property name="IsActive" type="Boolean">
<column name="IsActive" not-null="true" sql-type="bit" />
</property>
<set name="TBarCharts" table="T_BarChart_To_T_DataColumns" schema="dbo" generic="false">
<key>
<column name="ColumnNameId" not-null="true" sql-type="uniqueidentifier" />
</key>
<many-to-many class="TBarChart" fetch="join">
<column name="BarChartId" not-null="true" precision="10" scale="0" sql-type="int" />
</many-to-many>
</set>
<set name="THeatmapCharts" table="T_HeatmapChart_To_T_DataColumns" schema="dbo" generic="false">
<key>
<column name="ColumnNameId" not-null="true" sql-type="uniqueidentifier" />
</key>
<many-to-many class="THeatmapChart" fetch="join">
<column name="HeatmapChartId" not-null="true" precision="10" scale="0" sql-type="int" />
</many-to-many>
</set>
<set name="TTimeSeriesCharts" table="T_TimeSeriesChart_To_T_DataColumns" schema="dbo" generic="false">
<key>
<column name="ColumnNameId" not-null="true" sql-type="uniqueidentifier" />
</key>
<many-to-many class="TTimeSeriesChart" fetch="join">
<column name="TimeSeriesChartId" not-null="true" precision="10" scale="0" sql-type="int" />
</many-to-many>
</set>
<set name="TViews" table="T_View_To_T_DataColumns" schema="dbo" generic="false">
<key>
<column name="ColumnId" not-null="true" sql-type="uniqueidentifier" />
</key>
<many-to-many class="TView" fetch="join">
<column name="ViewId" not-null="true" precision="10" scale="0" sql-type="int" />
</many-to-many>
</set>
<set name="TDialCharts" inverse="true" generic="false">
<key>
<column name="ColumnNameId" />
</key>
<one-to-many class="TDialChart" />
</set>
</class>
</hibernate-mapping>
Code: Select all
public void AddChart(int viewId, Chart chart)
{
try
{
string chartType = chart.Type;
TView tView = _session.Get<TView>(viewId);
switch (chartType)
{
case "Bar":
{
_session.Transaction.Begin();
string hql = "SELECT i FROM TIntervalType i " +
"WHERE Name = :chartName";
IQuery query = _session.CreateQuery(hql).SetParameter("chartName", "Bar");
IList<TIntervalType> tIntervalType = query.List<TIntervalType>();
BarChart barChart = (BarChart)chart;
TBarChart tBarChart = new TBarChart();
tBarChart.TIntervalType = tIntervalType.ElementAt(0);
tBarChart.Name = chart.Label;
tBarChart.TView = tView;
//ColumnNames = (from TDataColumn tdc in c.TDataColumns select tdc.ColumnName).ToArray()
string[] charColumns = barChart.ColumnNames.ToArray();
hql = "SELECT d FROM TDataColumn d " +
"WHERE ColumnName IN (:columns)";
query = _session.CreateQuery(hql).SetParameterList("columns", charColumns);
IList<TDataColumn> tDataColumns = query.List<TDataColumn>();
foreach (TDataColumn tdc in tDataColumns)
{
tBarChart.TDataColumns.Add(tdc);
}
//tBarChart.TDataColumns.Add(from TDataColumn tdc in tDataColumns select tdc);
_session.Save(tBarChart);
_session.Transaction.Commit();
}
break;
.
.
.
}}
what am I doing wrong?
Any help will be appreciated in the right way of inserting the records.
Cheers,
Sameer Jaffer