I spent an entire evening looking at that and failed to notice, thanks
anyway - that has at least got rid of that error - it is now giving me;
Incorrect syntax near '@Email'.
On Monday, November 26, 2012 1:31:42 PM UTC, Richard Wilde wrote:
>
> Are you missing:-
>
>
>
> query.SetString("RefreshToken ", “what ever your token is”);
>
>
>
> Rippo
>
>
>
>
>
> *From:* [email protected] <javascript:> [mailto:
> [email protected] <javascript:>] *On Behalf Of *Paul
> Chapman
> *Sent:* 25 November 2012 22:29
> *To:* [email protected] <javascript:>
> *Subject:* [nhibernate-development] could not execute native bulk
> manipulation with an inner exception of 'The given key was not present in
> the dictionary' when executing SQL 2008 Stored Procedure
>
>
>
> I get the following error when executing a stored procedure
>
>
>
> *could not execute native bulk manipulation query:exec
> EmailAuthorizationsInsert @Id=:Id @Email=:Email @AccessToken=:AccessToken
> @Expiration=:Expiration @Issued=:Issued @RefreshToken=:RefreshToken[SQL:
> SQL not available]*
>
>
>
> Inner Exception is
>
>
>
> *The given key was not present in the dictionary*
>
>
>
> hibernate.cfg.xml
>
>
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
>
> <session-factory>
>
> <property
> name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
>
> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
>
> <property
> name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
>
> <property name="connection.connection_string">Data
> Source=pc-acer\dev;Initial Catalog=Email;Integrated Security=True</property>
>
> <property name="show_sql">true</property>
>
> </session-factory>
>
> </hibernate-configuration>
>
>
>
> EmailAuthorization.hbm.xml
>
>
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> assembly="GoogleEmailClient" namespace="GoogleEmailClient.BusinessObjects">
>
> <class name="EmailAuthorization" table="EmailAuthorizations">
>
> <id name="Id">
>
> <generator class="guid" />
>
> </id>
>
> <property name="Email" />
>
> <property name="AccessToken" />
>
> <property name="Expiration" />
>
> <property name="Issued" />
>
> <property name="RefreshToken" />
>
> </class>
>
> </hibernate-mapping>
>
>
>
> Code to execute Stored Procedure
>
>
>
> ISession session = NHibernateHelper.GetCurrentSession();
>
> IQuery query = session.CreateSQLQuery("exec
> EmailAuthorizationsInsert @Id=:Id @Email=:Email @AccessToken=:AccessToken
> @Expiration=:Expiration @Issued=:Issued @RefreshToken=:RefreshToken");
>
> query.SetGuid("Id", Guid.NewGuid());
>
> query.SetString("Email", user);
>
> query.SetString("AccessToken", grantedAccess.AccessToken);
>
>
> query.SetDateTime("Expiration",Convert.ToDateTime(grantedAccess.AccessTokenExpirationUtc));
>
> query.SetDateTime("Issued",
> Convert.ToDateTime(grantedAccess.AccessTokenIssueDateUtc));
>
> query.ExecuteUpdate();
>
>
>
> Stored Procedure being executed
>
>
>
> CREATE PROCEDURE [dbo].[EmailAuthorizationsInsert]
>
> @ID UniqueIdentifier,
>
> @Email VarChar(MAX),
>
> @AccessToken VarChar(MAX),
>
> @Expiration DateTime,
>
> @Issued DateTime,
>
> @RefreshToken VarChar(MAX)
>
> AS
>
> BEGIN
>
> SET NOCOUNT ON;
>
>
>
> INSERT INTO EmailAuthorizations
>
> (Email
>
> , AccessToken
>
> , Expiration
>
> , Issued
>
> , RefreshToken)
>
> VALUES (@Email
>
> , @AccessToken
>
> , @Expiration
>
> , @Issued
>
> , @RefreshToken)
>
> END
>
>
>
>
>
> And for completeness the table definition
>
>
>
> USE [Email]
>
> GO
>
>
>
> /****** Object: Table [dbo].[EmailAuthorizations] Script Date:
> 11/25/2012 22:28:04 ******/
>
> SET ANSI_NULLS ON
>
> GO
>
>
>
> SET QUOTED_IDENTIFIER ON
>
> GO
>
>
>
> SET ANSI_PADDING ON
>
> GO
>
>
>
> CREATE TABLE [dbo].[EmailAuthorizations](
>
> [ID] [uniqueidentifier] NOT NULL,
>
> [Email] [varchar](max) NOT NULL,
>
> [AccessToken] [varchar](max) NOT NULL,
>
> [Expiration] [datetime] NOT NULL,
>
> [Issued] [datetime] NOT NULL,
>
> [RefreshToken] [varchar](max) NOT NULL
>
> ) ON [PRIMARY]
>
>
>
> GO
>
>
>
> SET ANSI_PADDING OFF
>
> GO
>
>
>
> Any ideas
>
>
>
> Thanks in advance
>