Our object model is very trivial for this it is as such:
namespace TEAMS_ORM
{
public class CWTRatingGroup:BaseObject
{
private int _Id;
private string _Name;
private IList _RatingRules;
public CWTRatingGroup()
{
_Id = -1;
_Name = string.Empty;
_UserEdited = null;
_DateEdited = null;
}
public virtual int Id
{
get { return _Id; }
set
{
_Id = value;
}
}
public virtual string Name
{
get { return _Name; }
set
{
_Name = value;
}
}
public virtual IList RatingRules
{
get
{
return _RatingRules;
}
set { _RatingRules = value; }
}
}
}
namespace TEAMS_ORM
{
public class BaseObject
{
protected int _UserAdded;
protected DateTime _DateAdded;
protected int? _UserEdited;
protected DateTime? _DateEdited;
public BaseObject()
{
_UserAdded = -1;
_DateAdded = DateTime.Now;
_UserEdited = null;
_DateEdited = null;
}
public virtual int UserAdded
{
get { return _UserAdded; }
set { _UserAdded = value; }
}
public virtual DateTime DateAdded
{
get { return _DateAdded; }
set { _DateAdded = value; }
}
public virtual int? UserEdited
{
get { return _UserEdited; }
set { _UserEdited = value; }
}
public virtual DateTime? DateEdited
{
get { return _DateEdited; }
set { _DateEdited = value; }
}
}
}
Thank you,
Josh
On Mar 30, 12:06 pm, John Rayner <[email protected]> wrote:
> We're using nullable value types quite extensively. The only times
> we've had issues like this is when our C# objects were not properly
> coded to handle nullable values. Can we please see the relevant
> properties on the CWTRatingGroup class?
>
> On Mar 30, 5:51 pm, Will Shaver <[email protected]> wrote:
>
> > Can you share some of your object model (C#) for this problem?
>
> > On Mon, Mar 30, 2009 at 9:46 AM, joshlrogers <[email protected]> wrote:
>
> > > I am even more confused now because when I set up a test case as per
> > > your link it works just fine.
>
> > > Thanks,
> > > Josh
>
> > > On Mar 30, 9:15 am, Fabio Maulo <[email protected]> wrote:
> > >> Do you can recreate the issue in a "stand-alone" NUnit test
> > >> ?http://nhforge.org/blogs/nhibernate/archive/2008/10/04/the-best-way-t...
>
> > >> 2009/3/30 joshlrogers <[email protected]>
>
> > >> > Just thought I would give an update, I saw that there was a
> > >> > 2.1.0Alpha2 version so I upgraded and this issue is still there in
> > >> > this release.
>
> > >> > Thanks,
> > >> > Josh
>
> > >> > On Mar 30, 8:46 am, joshlrogers <[email protected]> wrote:
> > >> > > I apologize the version I am using is:
>
> > >> > > NHibernate-2.0.1.GA-bin
>
> > >> > > On Mar 30, 8:23 am, joshlrogers <[email protected]> wrote:
>
> > >> > > > 1. It does the same thing when I switch to criteria:
>
> > >> > > > public IList<CWTRatingGroup> GetAllCWTRatingGroups()
> > >> > > > {
> > >> > > > //return
> > >> > > > (List<CWTRatingGroup>)session.CreateQuery("select
> > >> > > > from TEAMS_ORM.CWTRatingGroup").List<CWTRatingGroup>();
>
> > >> > > > return session.CreateCriteria(typeof
> > >> > > > (CWTRatingGroup)).List<CWTRatingGroup>();
> > >> > > > }
>
> > >> > > > 2. I am using the most recent version I could download from
> > >> > > > hibernate.org
>
> > >> > > > 2.0.0.Beta1
>
> > >> > > > 3. I'll keep that in mind, thank you....
>
> > >> > > > Is there something I can do....I am thinking this is me because I
> > >> > > > am
> > >> > > > sure there have been others that needed to do the same thing and
> > >> > > > would
> > >> > > > have run into this issue. I really have exhausted my resources as
> > >> > > > to
> > >> > > > what the cause could be. I know my DB is right, I know that when I
> > >> > > > don't use NHibernate it works, and I seem to be out of options with
> > >> > > > NHibernate. Anyone have any ideas?
>
> > >> > > > Thank you,
> > >> > > > Josh
>
> > >> > > > On Mar 27, 4:26 pm, Will Shaver <[email protected]> wrote:
>
> > >> > > > > 1. Does it do this same thing if you do it via Criteria? >>
> > >> > > > > Perhaps
> > >> > the
> > >> > > > > CreateQuery method of querying is broken?
> > >> > > > > 2. Are you using trunk or an old version?
> > >> > > > > 3. Unless you like extra typing you don't need to define
> > >> > > > > Column="xx"
> > >> > if it
> > >> > > > > is identical to the Name field.
>
> > >> > > > > On Fri, Mar 27, 2009 at 2:22 PM, joshlrogers
> > >> > > > > <[email protected]>
> > >> > wrote:
>
> > >> > > > > > I have actually changed it to not have a type and I am still
> > >> > receiving
> > >> > > > > > the same result....
>
> > >> > > > > > <?xml version="1.0" encoding="utf-8" ?>
> > >> > > > > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> > >> > > > > > assembly="TEAMS_ORM" schema="dbo">
> > >> > > > > > <class name ="TEAMS_ORM.CWTRatingGroup,TEAMS_ORM"
> > >> > > > > > table="tblCWTRatingGroups">
>
> > >> > > > > > <id name="Id" column="Id" type="Int32"
> > >> > unsaved-value="-1">
> > >> > > > > > <generator class="native" />
> > >> > > > > > </id>
>
> > >> > > > > > <property name="Name" column="Name" length="50"
> > >> > > > > > type="String" not-
> > >> > > > > > null="true" unique="true" insert="true" update="true" />
> > >> > > > > > <property name="UserAdded" column="UserAdded"
> > >> > type="Int32"
> > >> > > > > > not-
> > >> > > > > > null="true" insert="true" update="false"/>
> > >> > > > > > <property name="DateAdded" column="DateAdded"
> > >> > > > > > type="DateTime" not-
> > >> > > > > > null="true" insert="true" update="false" />
> > >> > > > > > <property name="UserEdited" column="UserEdited"
> > >> > > > > > not-null="false"
> > >> > > > > > insert="false" update="true" />
> > >> > > > > > <property name="DateEdited" column="DateEdited"
> > >> > > > > > not-null="false"
> > >> > > > > > insert="false" update="true" />
>
> > >> > > > > > <bag name="RatingRules"
> > >> > > > > > table="tblCWTRatingGroups_RatingRules"
> > >> > > > > > cascade="all">
> > >> > > > > > <key column="GroupId" />
> > >> > > > > > <many-to-many column = "RuleId"
> > >> > > > > > class="TEAMS_ORM.CWTRatingRule,
> > >> > > > > > TEAMS_ORM" />
> > >> > > > > > </bag>
>
> > >> > > > > > </class>
>
> > >> > > > > > </hibernate-mapping>
>
> > >> > > > > > This still gives me a 1 for UserEdited and the current date for
> > >> > > > > > DateEdited. However if I do a SELECT query from the DB those
> > >> > values
> > >> > > > > > are null and if I do a dataset and do the query myself they are
> > >> > null.
> > >> > > > > > The issue is definitely a NHibernate issue I think it is safe
> > >> > > > > > to
> > >> > say
> > >> > > > > > at this point.
>
> > >> > > > > > Thanks,
> > >> > > > > > Josh
>
> > >> > > > > > On Mar 27, 4:15 pm, epitka <[email protected]> wrote:
> > >> > > > > > > I know, that's why I said I am not sure, either doc is not
> > >> > correct or
> > >> > > > > > > joshlrogers is doing something wrong.
>
> > >> > > > > > > On Mar 27, 4:12 pm, Will Shaver <[email protected]>
> > >> > > > > > > wrote:
>
> > >> > > > > > > > Well before you change it someone should do a test. I never
> > >> > actually
> > >> > > > > > put
> > >> > > > > > > > types in my mapping unless I'm implementing IUserType, so
> > >> > > > > > > > I'm
> > >> > not sure
> > >> > > > > > on
> > >> > > > > > > > this one.
>
> > >> > > > > > > > On Fri, Mar 27, 2009 at 2:12 PM, epitka <
> > >> > [email protected]>
> > >> > > > > > wrote:
>
> > >> > > > > > > > > Then this needs to be changed in the documentation:
>
> > >> > > > > > > > > "NHibernate supports .NET 2.0 Nullable types. These
> > >> > > > > > > > > types are
> > >> > mostly
> > >> > > > > > > > > treated the same as plain non-Nullable types internally.
> > >> > > > > > > > > For
> > >> > example,
> > >> > > > > > > > > a property of type Nullable<Int32> can be mapped using
> > >> > type="Int32"
> > >> > > > > > or
> > >> > > > > > > > > type="System.Int32".
>
> > >> > > > > > > > > If you do not specify a type, NHibernate will use
> > >> > > > > > > > > reflection
> > >> > upon the
> > >> > > > > > > > > named property to take a guess at the correct NHibernate
> > >> > type.
> > >> > > > > > > > > NHibernate will try to interpret the name of the return
> > >> > > > > > > > > class
> > >> > of the
> > >> > > > > > > > > property getter using rules 2, 3, 4 in that order.
> > >> > > > > > > > > However,
> > >> > this is
> > >> > > > > > > > > not always enough. In certain cases you will still need
> > >> > > > > > > > > the
> > >> > type
> > >> > > > > > > > > attribute. (For example, to distinguish between
> > >> > > > > > > > > NHibernateUtil.DateTime and NHibernateUtil.Timestamp, or
> > >> > > > > > > > > to
> > >> > specify a
> > >> > > > > > > > > custom type.)"
>
> > >> > > > > > > > > On Mar 27, 4:03 pm, Will Shaver <[email protected]>
> > >> > wrote:
> > >> > > > > > > > > > Ack, of course epitka is right. Remember that nullable
> > >> > types are
> > >> > > > > > actually
> > >> > > > > > > > > > implemented with the backtick operator.
> > >> > > > > > > > > > Remember that this:
> > >> > > > > > > > > > ?int
> > >> > > > > > > > > > is actually this:
> > >> > > > > > > > > > System.Nullable``1[[System.Int32]]
>
> > >> > > > > > > > > > or something like that...
>
> > >> > > > > > > > > > -Will
>
> > >> > > > > > > > > > On Fri, Mar 27, 2009 at 2:00 PM, epitka <
> > >> > [email protected]>
> > >> > > > > > wrote:
>
> > >> > > > > > > > > > > I am not sure about this, but try taking "type"
> > >> > > > > > > > > > > attribute
> > >> > out of
> > >> > > > > > your
> > >> > > > > > > > > > > mapping and let NH figure out what the type is.
>
> > >> > > > > > > > > > > On Mar 27, 1:43 pm, joshlrogers
> > >> > > > > > > > > > > <[email protected]>
> > >> > wrote:
> > >> > > > > > > > > > > > Yes this is definite. I run a query through a
> > >> > > > > > > > > > > > plain
> > >> > old data
> > >> > > > > > set and
> > >> > > > > > > > > > > > they return null. I have verified my database
> > >> > > > > > > > > > > > design
> > >> > as
> > >> > > > > > well....just
> > >> > > > > > > > > > > > for clarification sake:
>
> > >> > > > > > > > > > > > CREATE TABLE [dbo].[tblCWTRatingGroups](
> > >> > > > > > > > > > > > [Id] [int] IDENTITY(0,1) NOT NULL,
> > >> > > > > > > > > > > > [Name] [nvarchar](50) NOT NULL,
> > >> > > > > > > > > > > > [UserAdded] [int] NOT NULL,
> > >> > > > > > > > > > > > [DateAdded] [datetime] NOT NULL,
> > >> > > > > > > > > > > > [UserEdited] [int] NULL,
> > >> > > > > > > > > > > > [DateEdited] [datetime] NULL,
> > >> > > > > > > > > > > > CONSTRAINT [PK_tblCWTRatingGroups] PRIMARY KEY
> > >> > CLUSTERED
> > >> > > > > > > > > > > > (
> > >> > > > > > > > > > > > [Id] ASC
> > >> > > > > > > > > > > > )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
> > >> > > > > > > > > > > > OFF,
> > >> > > > > > > > > IGNORE_DUP_KEY
> > >> > > > > > > > > > > > = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
> > >> > > > > > > > > > > > ON,
> > >> > > > > > FILLFACTOR =
> > >> > > > > > > > > 20)
> > >> > > > > > > > > > > > ON [PRIMARY]
> > >> > > > > > > > > > > > ) ON [PRIMARY]
>
> > >> > > > > > > > > > > > That was taken straight from SQL Server Management
> > >> > Studio....
>
> > >> > > > > > > > > > > > Thank you,
> > >> > > > > > > > > > > > Josh
>
> > >> > > > > > > > > > > > On Mar 27, 1:29 pm, James Gregory <
> > >> > [email protected]>
> > >> > > > > > wrote:
>
> > >> > > > > > > > > > > > > Just to
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---