Just for fun, change it to be:
public BaseObject()
{
UserAdded = -1;
DateAdded = DateTime.Now;
UserEdited = null;
DateEdited = null;
}
(Note underscores deleted)
-Will
On Mon, Mar 30, 2009 at 11:11 AM, joshlrogers <[email protected]> wrote:
>
> 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
-~----------~----~----~----~------~----~------~--~---