c# - GenericADOException was unhandled Could not insert -


i trying use nhibernate bycode mapping , not having success. idea i'm doing wrong?

my table:

create table [dbo].[activities](     [id] [int] identity(1,1) not null,     [date] [bigint] not null,     [userid] [int] not null,     [customerjob] [int] null,     [service] [int] null,     [class] [int] null,     [notes] [text] null,     [billable] [tinyint] not null,     [duration] [int] not null,  constraint [pk_activities_1] primary key clustered  (     [id] asc )with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks = on) on [primary] ) on [primary] textimage_on [primary] 

my class:

public class activity {     public virtual int id { get; set; }     public virtual long date { get; set; }     public virtual int userid { get; set; }     public virtual int? customerjob { get; set; }     public virtual int? service { get; set; }     public virtual int? class { get; set; }     public virtual string notes { get; set; }     public virtual byte billable { get; set; }     public virtual int duration { get; set; }      public static void add(activity activity) {         using (isession session = applicationcontextsingleton.sessionfactory.opensession()) {             using (itransaction transaction = session.begintransaction()) {                 session.save(activity);                 transaction.commit();             }         }     } } 

my mapping class:

namespace simpletimer.maps {     public class activitiesmap : classmapping<activity>     {         public activitiesmap()         {             schema("dbo");             lazy(true);             id(x => x.id, map => map.generator(generators.identity));             property(x => x.date, map => map.notnullable(true));             property(x => x.userid, map => map.notnullable(true));             property(x => x.customerjob);             property(x => x.service);             property(x => x.class);             property(x => x.notes);             property(x => x.billable, map => map.notnullable(true));             property(x => x.duration, map => map.notnullable(true));         }     } } 

my singleton use manage session , configuration:

class applicationcontextsingleton {     private static configuration configuration;     private static isessionfactory sessionfactory;      public static configuration nhconfiguration {         {             if (configuration == null) {                 appconfigure();             }             return configuration;         }     }      public static isessionfactory sessionfactory {         {             if (sessionfactory == null) {                 appconfigure();             }             return sessionfactory;         }     }      private static void appconfigure() {         configuration = configurenhibernate();         sessionfactory = nhconfiguration.buildsessionfactory();     }      private static configuration configurenhibernate() {         // create object hold configuration settings         // , fill information access database         nhibernate.cfg.configuration configuration = new nhibernate.cfg.configuration();         configuration.properties[nhibernate.cfg.environment.connectionprovider] = "nhibernate.connection.driverconnectionprovider";          // these 3 lines of code change in order use database         configuration.properties[nhibernate.cfg.environment.dialect] = "nhibernate.dialect.mssql2000dialect";         configuration.properties[nhibernate.cfg.environment.connectiondriver] = "nhibernate.driver.sqlclientdriver";         configuration.properties[nhibernate.cfg.environment.connectionstring] = system.configuration.configurationmanager.connectionstrings["simpletimerdatabase.properties.settings.qtimerconnectionstring"].connectionstring;          var mapping = getmappings();         configuration.adddeserializedmapping(mapping, "nhschematest");         schemametadataupdater.quotetableandcolumns(configuration);          return configuration;     }      private static hbmmapping getmappings() {         var mapper = new modelmapper();         mapper.addmappings(assembly.getassembly(typeof(activitiesmap)).getexportedtypes());         var mapping = mapper.compilemappingforallexplicitlyaddedentities();          return mapping;     } } 

the code i'm using save activity:

activity = new activity(); a.date = datetime.now.ticks / timespan.tickspersecond; a.userid = 1; a.notes = "notes"; a.billable = 1; a.duration = 60 * 60 * 3; //three hours  activity.add(a); console.writeline("added activity"); 

on activity.add exception:

genericadoexception unhandled: not insert:
[simpletimer.domain.activity][sql: insert dbo.activity ([date], userid, customerjob, service, [class], notes, billable, duration) values (?, ?, ?, ?, ?, ?, ?, ?); select scope_identity()]

any clue i'm doing wrong?

this kind of exceptions has clear answer ... few lines below. , expect like:

genericadoexception unhandled: not insert: [simpletimer.domain.activity][sql: insert dbo.activity ([date], userid, customerjob, service, [class], notes, billable, duration) values (?, ?, ?, ?, ?, ?, ?, ?); select scope_identity()] ...
... --> system.data.sqlclient.sqlexception: cannot insert value null column 'activityid', table 'dbname.dbo.activity'; column not allow nulls. insert fails ....

and tried show above, suspected identity beeing turned off. apply this

alter table [dbo].[activity] alter column [activityid] int not null identity(1,1) 

or change generator: 5.1.4.1. generator


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -