Well, I just need to simplify my work. As i said before: for now, I'm using ADO.NET with DataTables, DataSets etc. I'm tired to go with it. I would like to deal with objects and as you said: "how can I use objects to store and query things that are in my database" - is maybe my choice.
Even those OR-mappers who claim otherwise will usually be a bit fiddly when > it comes to stored procedures, imposing things like naming restrictions, > all-or-nothing (all CRUD operations must be either non-SP or SP) etc. I don't know what are you talking about. BLToolkit has very good support of stored procedures. Without any restrictions. I liked NHibernate. I've read a tons of articles about it. I like it's very good extensibility. But I don't know how to do what I need. As I understand: NHibernate is very good for web applications but not a desktop (which has to deal with sp). A good article, if it wasn't for the "main advantage" being "Execution Plan > Retention and Reuse can only be achieved using Stored Procedure", which is > just plain untrue, and it was untrue in 2007 as well. Yes. I'm fully agree with you. I hope, I will migrate to BLToolkit with less pain. Вівторок, 30 квітня 2013 р. 01:39:12 UTC+3 користувач Gunnar Liljas написав: > > "You may ask - why it can not deal with the application itself? Because of > Reverse-Engineering (every-one can see .net code by using ILSpy or > Reflector tool). And begin to connect to the server using something such as > "Management Studio" and do everything that pleases. And that's just the > above-mentioned mechanism will not allow him to do so." > > Fair enough. That's a perfectly fine reason to use stored procedures. > However, the vast majority of OR-mappers are heavily geared towards solving > the problem "how can I use a database to store and query my objects", not > "how can I use objects to store and query things that are in my database". > Even those OR-mappers who claim otherwise will usually be a bit fiddly when > it comes to stored procedures, imposing things like naming restrictions, > all-or-nothing (all CRUD operations must be either non-SP or SP) etc. > NHibernate may not be the best of the bunch, but it's certainly one of the > best. > > In this particular case, the problem really isn't stored procedures, but > instead being able to get a DB generated value back to NHibernate, and > Pete's suggestion solves just that. > > "And by the way: "sql server - stored procedures advantages and best > advantage" [ > http://blog.sqlauthority.com/2007/04/13/sql-server-stored-procedures-advantages-and-best-advantage/ > ]" > > A good article, if it wasn't for the "main advantage" being "Execution > Plan Retention and Reuse can only be achieved using Stored Procedure", > which is just plain untrue, and it was untrue in 2007 as well. > > /G > > > 2013/4/29 <[email protected] <javascript:>> > >> "The bit I'm struggling to understand is why you need to use a stored >>> procedure for the insert operation" >> >> >> OK. Let me explain something. >> >> 1. My application is WinForm type. >> 2. It uses mssql-server built-in security mechanism. Everyone has the >> appropriate sql-server user. Each user assigning specific sql-server roles. >> Which in turn have the right to execute certain stored procedures. >> 3. In the stored procedure it is possible to examine additional security >> conditions (for example, possibility of the user to create(insert) document >> by additional condition) and to perform additional operation. >> >> You may ask - why it can not deal with the application itself? Because of >> Reverse-Engineering (every-one can see .net code by using ILSpy or >> Reflector tool). And begin to connect to the server using something such as >> "Management Studio" and do everything that pleases. And that's just the >> above-mentioned mechanism will not allow him to do so. >> >> And by the way: "sql server - stored procedures advantages and best >> advantage" [ >> http://blog.sqlauthority.com/2007/04/13/sql-server-stored-procedures-advantages-and-best-advantage/ >> ] >> >> >> If that isn't the case then I think that your initial requirement >>> (population of the CreateDate column by the DB server) can easily be met by >>> just mapping the CreateDate property as 'generated' and applying a default >>> to the column? >> >> >> >> I knew nothing about this feature. But thanks any way. >> >> >> So, am I do something wrong? How do you make security strength and >> performance applications? >> >> >> Понеділок, 29 квітня 2013 р. 17:25:20 UTC+3 користувач PeteA написав: >> >>> The bit I'm struggling to understand is why you need to use a stored >>> procedure for the insert operation - is there a lot of logic in this >>> procedure that's hard to handle elsewhere? If that isn't the case then I >>> think that your initial requirement (population of the CreateDate column by >>> the DB server) can easily be met by just mapping the CreateDate property as >>> 'generated' and applying a default to the column? >>> >>> >>> -----Original Message----- >>> From: [email protected] on behalf of [email protected] >>> Sent: Mon 4/29/2013 8:26 AM >>> To: [email protected] >>> Subject: [nhusers] Re: OUTPUT parameters in stored procedure. >>> >>> OK >>> >>> I asked "why???" because I really didn't understand why. >>> >>> I have another idea how to retrieve what we want and don't use OUTPUT >>> parameters. >>> What if to sql-insert add another attribute (list of properties). >>> Example (mapping by code): >>> >>> m.SqlInsert("exec dbo.document_insert ?,?,?,?,?", new[] { >>> t.CreateDate, t.EditDate }); >>> >>> And at the end of "document_insert" write this: >>> >>> SELECT SCOPE_IDENTITY, @CreateDate, @EditDate >>> >>> >>> I think it's elegant way of problem solving. >>> >>> So, what will you say? >>> >>> >>> ?????????, 22 ?????? 2013 ?. 22:08:42 UTC+3 ?????????? >>> [email protected] ???????: >>> >>> I know nhibernate doesn't support output parameters? but I don't >>> understand why. >>> >>> Why I can't write something like this: >>> >>> <class name="Document"> >>> ... >>> <sql-insert>exec createDocument ?,? OUT,?,?</sql-insert> >>> ... >>> </class> >>> >>> I think it's very easy to implement. >>> >>> Now, for data access code I'm using pure ADO.NET. And my >>> "documents" table has "CreateDate" column, which is set by server, and >>> returns to my application by output parameter of stored procedure. >>> I know I can set "CreateDate" property of my POCO class manually >>> but i don't want do it because I can't accurately synchronize client clock >>> to the clock of server. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "nhusers" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/nhusers?hl=en-US. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> Visit this group at http://groups.google.com/group/nhusers?hl=en-US. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/nhusers?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
