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()));
}
}
}
}
}
In version 7.0 the following code fails