Hi,

I pushed a new version with some comments addressed.
FTR, if anyone is interested in implementing support for MySQL, this link 
is a good starting 
point: 
http://dev.mysql.com/doc/connector-net/en/connector-net-programming-bulk-loader.html.

RP

On Wednesday, October 29, 2014 9:55:57 AM UTC, Ricardo Peres wrote:
>
> Hi,
>
> 1. OK, so you used "magic" conventions... :-)
> 2. Good you liked it! ;-)
> 3. Yes, that is true... might be an improvement for the future.
> 4. Agreed. Changed it to only target IStatelessSession, I think it makes 
> more sense.
>
> RP
>
> On Wednesday, October 29, 2014 9:31:35 AM UTC, Gunnar Liljas wrote:
>>
>> Hi!
>>
>> I forgot to say that I think that it is a very good start!
>>
>> 1. Since there are quite a few limitations to the bulk insert, I've 
>> needed to allow unmapped classes through my bulk inserter. One scenario is 
>> adding rows to a ManyToMany table, another is is joined components. For 
>> these cases the convention is that the table name is specified and the 
>> column names are the property names.
>> 2. NH-3606 would be a good thing
>> 3. By using an intermediate table and the OUTPUT clause in the following 
>> INSERT
>> 4. Alexander's suggestion to only allow this on IStatelessSession makes 
>> sense.
>>
>> /G
>>
>> 2014-10-29 8:55 GMT+01:00 Ricardo Peres <[email protected]>:
>>
>>> Hi, Gunnar!
>>>
>>> Thank you so much for your feedback! Will try to address your questions.
>>>
>>> 1. What do you mean with only mapped classes? How would we know the 
>>> table and columns for unmapped classes? Or are you talking about the class 
>>> template restriction? If so, that is kind of an unofficial requirement for 
>>> NHibernate, since structs cannot be subclassed.
>>> 2. Maybe you are right. In this case, I will have to spawn a new 
>>> stateless session from the current session (if it is currently not one), 
>>> which may have to wait for my pull request for NH-3606 to be merged. Or 
>>> manually generate INSERTs, which I wouldn't like. Another option is to not 
>>> have a default, that is, in cases where it is not supported, return null 
>>> from DriverBase, which will result in an exception.
>>> 3. Yes it is, but for a single record: SCOPE_IDENTITY only returns the 
>>> last IDENTITY inserted. Or are talking something else?
>>> 4. You mean, check if each entity is in the session cache? This will 
>>> likely slow things a bit. Also, the BulkInsert method does not add the 
>>> entities to this cache - unless, of course, in DefaultBulkProvidet, when it 
>>> uses ISession.Save - so they will never be flushed.
>>>
>>> I understand what you mean about making bulk a feature, but this 
>>> requires substantial architectural changes, which were outside the scope of 
>>> what I wanted. Maybe something to consider, if there is the will for that.
>>> @hazzik also gave some feedback on the code, I will do some changes.
>>>
>>> Again, thanks!
>>>
>>> RP
>>>
>>> --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google 
>>> Groups "nhibernate-development" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to