Skip to content

Invalid cast exception in the scalar query with a type cast #84

@AlexUstinov

Description

@AlexUstinov

In version 7.0 the following code fails

using System;
using System.Linq;
using System.Reflection;
using NUnit.Framework;
using Xtensive.Orm.Configuration;
using Xtensive.Orm.Model;
using Xtensive.Orm.Tests.Issues.GithubIssue_xxx_InvalidCastModel;

namespace Xtensive.Orm.Tests.Issues.GithubIssue_xxx_InvalidCastModel
{
  [HierarchyRoot(InheritanceSchema.ConcreteTable)]
  public class Item : Entity
  {
    public Item(Session session)
      : base(session)
    { }

    [Field, Key]
    public long Id { get; private set; }

    [Field]
    public int IntField { get; set; }
  }
}

namespace Xtensive.Orm.Tests.Issues
{
  [TestFixture]
  public class GitHubIssue_xxx_InvalidCast : AutoBuildTest
  {
    protected override DomainConfiguration BuildConfiguration()
    {
      var config = base.BuildConfiguration();
      config.Types.Register(Assembly.GetExecutingAssembly(), typeof (Item).Namespace);
      return config;
    }

    [Test]
    public void InvalidCastOnMaterialization()
    {
      using (var session = Domain.OpenSession()) {
        using (session.OpenTransaction()) {
          _ = new Item(session);
          Assert.AreEqual((int?) 1, session.Query
            .All<Item>()
            .GroupBy(s => s.IntField)
            .Max(g => (int?)g.Count()));
        }
      }
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions