// Not readable
// And error-prone, order of parameters could be mistaken
{
var people = session.CreateSQLQuery("exec GetPerson ?, ?")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean<GetPerson>())
.SetString(0, "B")
.SetString(1, "M")
.List<GetPerson>();
}
// Readable
// Yet error-prone, order of parameters could be mistaken
{
var people = session.CreateSQLQuery("exec GetPerson @lastName = ?, @firstName = ?")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean<GetPerson>())
.SetString(0, "B")
.SetString(1, "M")
.List<GetPerson>();
}
// Readable
// Yet error-prone, order of parameters could be mistaken
{
var people = session.CreateSQLQuery("exec GetPerson :lastName, :firstName")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean<GetPerson>())
.SetString("lastName", "B")
.SetString("firstName", "M")
.List<GetPerson>();
}
// Readable
// Order of parameters doesn't matter. And if wrong parameter is passed, it's readily apparent
// The best approach
{
var people = session.CreateSQLQuery("exec GetPerson @firstName = :firstName, @lastName = :lastName")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean<GetPerson>())
.SetString("lastName", "B")
.SetString("firstName", "M")
.List<GetPerson>();
}
Happy Coding!
No comments:
Post a Comment