That two phrases are part of one of my posts...
This is the full sentiment
http://fabiomaulo.blogspot.com/2009/06/database-eliot-ness-of-it.html

2010/2/20 John Davidson <[email protected]>

> Of course you are correct Fabio. I should be able to redo the application
> using a fully modern DB, even working with a proper object model as opposed
> to first making a relational model and then fitting an object model to the
> data model.
>
> But I am creating a government enterprise application and must follow their
> standards - relational model to a predetermined standard created by the DB
> Architects and must use the DB Architects legacy tables for lookup.
>
> The use of NHibernate was a major departure and that combined with doing
> automated Unit and Integration testing pushed the boundaries far enough. I
> was not able to get an IoC, so you can see that a modern data design
> methodology was impossible. If I threatened the DBAs who hold absolute veto
> power, no progress would be possible.
>
> Small steps to start and then run and maybe later score.
>
> Thanks for the sentiments though
>
> John Davidson
>
> On Fri, Feb 19, 2010 at 8:44 PM, Fabio Maulo <[email protected]> wrote:
>
>> Why, write a new .NET3.5 application, shouldn’t mean re-think the DB ? The
>> DB is not a part of the old application ?
>>
>> We are working in software, is the relational DB a piece of granite
>> technology of the past century and nothing more ?
>>
>> ....again and again... The Eliot Ness of IT still alive
>>
>> 2010/2/19 John Davidson <[email protected]>
>>
>>> The problem is that this is a legacy table (immutable), with more than
>>> 5000 rows which need to be displayed to end users as a pick list, based on
>>> province. When it gets stored when used by another entity it can be mapped
>>> as a value object, but I still need it as a stand alone entity that can be
>>> queried. Is there any way to do this without duplicating all the values in
>>> another table with an added ID column?
>>>
>>> John Davidson
>>>
>>>
>>> On Fri, Feb 19, 2010 at 3:55 PM, Jason Meckley 
>>> <[email protected]>wrote:
>>>
>>>> "I have marked the class 'Serializable' and overridden Equals and
>>>> GetHashCode (although there were no compile error or exceptions when I
>>>> did not do this)"
>>>> nor would there be. By marking the object serializable you can
>>>> serialize the configuration. This is useful if you want to save the
>>>> configuration to file and then load it from file, rather than building
>>>> the configuration each time.
>>>> Equals and GetHashCode are used by the session to manage the identity
>>>> map (1st level cache) not implementing them will not prevent
>>>> complication, but you will get side effects in the session because the
>>>> identity map may contain multiple instances of the same object)
>>>>
>>>> the sql may not be generated because you have no properties associated
>>>> wit the entity. if the entity is just city and providence you may want
>>>> to consider mapping this as a list of components (value objects)
>>>> rather than an entity.
>>>>
>>>> On Feb 19, 1:44 pm, John Davidson <[email protected]> wrote:
>>>> > I could really use some help with this as it is taking too long todo
>>>> > something I thought was relatively simple.
>>>> >
>>>> > I am unable to get data from a legacy table with a composite key. The
>>>> > mapping, class and test query are below. I have marked the class
>>>> > 'Serializable' and overridden Equals and GetHashCode (although there
>>>> were no
>>>> > compile error or exceptions when I did not do this). When the sample
>>>> query
>>>> > executes there is no sql (or exception) generated.
>>>> >
>>>> > <?xml version="1.0" encoding="utf-8" ?>
>>>> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>>>> >                    schema="HCOMS_USER"
>>>> >                    assembly="SIS.Model"
>>>> >                    namespace="SIS.Model">
>>>> >   <class name="CityRef" table="CORE_CITY_TOWN">
>>>> >     <composite-id>
>>>> >       <key-property name="CityName" column="CITY_TOWN_NAME_TXT"
>>>> > type="string"/>
>>>> >       <key-property name="ProvinceCD" column="PROVINCE_CD"
>>>> type="string"/>
>>>> >     </composite-id>
>>>> >   </class>
>>>> > </hibernate-mapping>
>>>> >
>>>> > =================================================================
>>>> >
>>>> > <Serializable()> _
>>>> > Public Class CityRef
>>>> >     Implements IAggregateRoot
>>>> >
>>>> >     Private _cityName As String
>>>> >     Private _provinceCd As String
>>>> >
>>>> >     Public Sub New()
>>>> >
>>>> >     End Sub
>>>> >
>>>> >     Public Sub New(ByVal CityName As String, ByVal ProvinceCd As
>>>> String)
>>>> >         _cityName = CityName
>>>> >         _provinceCd = ProvinceCd
>>>> >     End Sub
>>>> >
>>>> >     Public Overridable Property CityName() As String
>>>> >         Get
>>>> >             Return _cityName
>>>> >         End Get
>>>> >         Set(ByVal value As String)
>>>> >             _cityName = value
>>>> >         End Set
>>>> >     End Property
>>>> >
>>>> >     Public Overridable Property ProvinceCD() As String
>>>> >         Get
>>>> >             Return _provinceCd
>>>> >         End Get
>>>> >         Set(ByVal value As String)
>>>> >             _provinceCd = value
>>>> >         End Set
>>>> >     End Property
>>>> >
>>>> >     Public Overrides Function Equals(ByVal obj As Object) As Boolean
>>>> >         If obj Is Nothing Then
>>>> >             Return False
>>>> >         End If
>>>> >         Dim t As CityRef = CType(obj, CityRef)
>>>> >         If t Is Nothing Then
>>>> >             Return False
>>>> >         End If
>>>> >         If (Me._cityName = t._cityName AndAlso Me._provinceCd =
>>>> > t._provinceCd) Then
>>>> >             Return True
>>>> >         Else
>>>> >             Return False
>>>> >         End If
>>>> >     End Function
>>>> >
>>>> >     Public Overrides Function GetHashCode() As Integer
>>>> >         Return _cityName.GetHashCode Xor _provinceCd.GetHashCode
>>>> >     End Function
>>>> > End Class
>>>> >
>>>> > ==============================================================
>>>> >
>>>> >         Dim myList As IList(Of CityRef) =  _
>>>> >                            SessionManager.GetCurrentSession _
>>>> >                          .CreateCriteria(GetType(CityRef)).List(Of
>>>> > CityRef)()
>>>> >
>>>> > John Davidson
>>>>
>>>> --
>>>> 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]<nhusers%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>
>>>>
>>>  --
>>> 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]<nhusers%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/nhusers?hl=en.
>>>
>>
>>
>>
>> --
>> Fabio Maulo
>>
>>  --
>> 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]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>
>  --
> 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]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>



-- 
Fabio Maulo

-- 
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.

Reply via email to