With this
c.Discriminator(map =>
{
map.Column("DISCRIMINATOR_TYPE");
map.Type(typeof(int));
map.NotNullable(true);
});
The exception should be this:
System.ArgumentOutOfRangeException : Expected type implementing
IDiscriminatorType
On Wed, May 4, 2011 at 9:19 AM, Fabio Maulo <[email protected]> wrote:
> Same domain
> var mapper = new ModelMapper();
> mapper.Class<Activity>(c =>
> {
> c.DiscriminatorValue(0);
> c.Discriminator(map =>
> {
> map.Column("DISCRIMINATOR_TYPE");
> map.Type(NHibernateUtil.Int32);
> map.NotNullable(true);
> });
> c.Id(x => x.Id, map => map.Generator(Generators.Guid));
> c.Property(x => x.Title);
> });
> mapper.Subclass<FormActivity>(c =>
> {
> c.DiscriminatorValue((int)ActivityType.Form);
> });
>
> Mapping:
> <class name="Activity" discriminator-value="0">
> <id name="Id" type="Guid">
> <generator class="guid" />
> </id>
> <discriminator column="DISCRIMINATOR_TYPE" type="Int32" />
>
> <property name="Title" />
> </class>
>
> <subclass name="FormActivity" discriminator-value="1" extends="Activity" />
>
> On Wed, May 4, 2011 at 9:15 AM, Fabio Maulo <[email protected]> wrote:
>
>> private class Entity
>> {
>> public Guid Id { get; set; }
>> }
>> private class Activity: Entity
>> {
>> public string Title { get; set; }
>> }
>>
>> private class FormActivity:Activity
>> {
>> }
>> public enum ActivityType
>> {
>> Form = 1,
>> Custom = 2,
>> Email = 3
>> }
>> [Test]
>> public void WhenMapDiscriminatorValueThenNotThrows()
>> {
>> var mapper = new ModelMapper();
>> mapper.Class<Activity>(c =>
>> {
>> c.DiscriminatorValue(0);
>> c.Id(x => x.Id, map => map.Generator(Generators.Guid));
>> c.Property(x => x.Title);
>> });
>> mapper.Subclass<FormActivity>(c =>
>> {
>> c.DiscriminatorValue((int)ActivityType.Form);
>> });
>>
>> Console.WriteLine(mapper.CompileMappingForAllExplicitAddedEntities().AsString());
>> }
>>
>> Mapping:
>> <class name="Activity" discriminator-value="0">
>> <id name="Id" type="Guid">
>> <generator class="guid" />
>> </id>
>> <discriminator type="Int32" />
>> <property name="Title" />
>> </class>
>>
>> <subclass name="FormActivity" discriminator-value="1" extends="Activity" />
>>
>> Can you send me the same thing I'm sending you but generating the
>> exception you are seeing ?
>> Thanks
>>
>> On Wed, May 4, 2011 at 8:39 AM, Luka <[email protected]> wrote:
>>
>>> public enum ActivityType
>>> {
>>> Form = 1,
>>> Custom = 2,
>>> Email = 3
>>> }
>>>
>>> I tried to change:
>>> mapper.Subclass<FormActivity>(map=>map.DiscriminatorValue( 1 )); , but
>>> with the same error
>>>
>>>
>>> On May 4, 1:23 pm, Fabio Maulo <[email protected]> wrote:
>>> > what is ActivityType ?
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > On Wed, May 4, 2011 at 8:17 AM, Luka <[email protected]> wrote:
>>> > > hi, Fabio
>>> >
>>> > > I have corrected my scenario like this:
>>> > > mapper.Class<Activity>(map =>
>>> > > {
>>> > > map.Discriminator(dm =>
>>> > > {
>>> >
>>> > > dm.Column("DISCRIMINATOR_TYPE");
>>> >
>>> > > dm.Type(typeof(System.Int32));
>>> > > dm.NotNullable(true);
>>> > > });
>>> > > });
>>> > >
>>> mapper.Subclass<FormActivity>(map=>map.DiscriminatorValue(ActivityType.Form
>>> > > ));
>>> >
>>> > > Now discriminator is not a Property anymore. But I get same error.
>>> >
>>> > > On May 4, 12:59 pm, Fabio Maulo <[email protected]> wrote:
>>> > > > The discriminator *can't* be a property.
>>> >
>>> > > > On Wed, May 4, 2011 at 6:18 AM, Luka <[email protected]> wrote:
>>> > > > > Hi,
>>> > > > > I have this scenarion:
>>> >
>>> > > > > A table:
>>> >
>>> > > > > Activity
>>> > > > > .Id : Guid
>>> > > > > .Type: int
>>> > > > > .Title: nvarchar(20)
>>> > > > > ...
>>> >
>>> > > > > Classes
>>> > > > > public class Activity: Entity
>>> > > > > {
>>> > > > > public virtual ActivityType Type {get;set;}
>>> > > > > public virtual string Title {get;set;}
>>> > > > > }
>>> >
>>> > > > > public class FormActivity: Activity
>>> > > > > {
>>> >
>>> > > > > }
>>> >
>>> > > > > and a mapping:
>>> > > > > mapper.Class<Activity>(map =>
>>> > > > > {
>>> >
>>> > > > > map.Discriminator(dm=>dm.Column("TYPE"));
>>> > > > > });
>>> >
>>> > >
>>> mapper.Subclass<FormActivity>(map=>map.DiscriminatorValue(ActivityType.Form
>>> > > ));
>>> >
>>> > > > > When building SessionFactory I get Exception
>>> >
>>> > > > > System.InvalidOperationException: Sequence contains more than one
>>> > > > > matching element
>>> > > > > It throws when get on this line:
>>> >
>>> > >
>>> mapper.Subclass<FormActivity>(map=>map.DiscriminatorValue(ActivityType.Form
>>> > > ));
>>> >
>>> > > > > what am I doing wrong?
>>> >
>>> > > > > --
>>> > > > > You received this message because you are subscribed to the
>>> Google
>>> > > Groups
>>> > > > > "nhusers" group.
>>> > > > > To post to this group, send email to [email protected].
>>> > > > > To unsubscribe from this group, send email to
>>> > > > > [email protected].
>>> > > > > For more options, visit this group at
>>> > > > >http://groups.google.com/group/nhusers?hl=en.
>>> >
>>> > > > --
>>> > > > Fabio Maulo
>>> >
>>> > > --
>>> > > You received this message because you are subscribed to the Google
>>> Groups
>>> > > "nhusers" group.
>>> > > To post to this group, send email to [email protected].
>>> > > To unsubscribe from this group, send email to
>>> > > [email protected].
>>> > > For more options, visit this group at
>>> > >http://groups.google.com/group/nhusers?hl=en.
>>> >
>>> > --
>>> > Fabio Maulo
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "nhusers" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/nhusers?hl=en.
>>>
>>>
>>
>>
>> --
>> Fabio Maulo
>>
>>
>
>
> --
> Fabio Maulo
>
>
--
Fabio Maulo
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.