我正在处理一个 Fluent NHibernate 项目,并且在进行一些测试时遇到了一个非常奇怪的错误:
The entity '<>c__DisplayClass3' doesn't have an Id mapped. Use the Id method to map your identity property. For example: Id(x => x.Id).
报告的相关实体是:
{Name = "<>c__DisplayClass3" FullName = "TPLLCPortal.Domain.Account+<>c__DisplayClass3"}
我没有任何名为 的类DisplayClass
,但我确实有一个Account
实体。我正在使用如下所示的主键约定:
public class PrimaryKeyConvention : IIdConvention
{
public void Apply(IIdentityInstance instance)
{
instance.GeneratedBy.GuidComb();
}
}
我的Account
类继承自一个EntityBase
将 ID 声明为的类:
/// <summary>
/// Gets or sets the id.
/// </summary>
/// <value>The id.</value>
public virtual Guid Id { get; protected internal set; }
我确信我正在正确设置配置并且正在采用约定,但以防万一我添加了覆盖并专门映射了Account
该类的 ID。没有骰子。
有什么想法吗?
我正在使用 FNH 1.3.0.733 和 NHibernate 3.3.1.4000(都从 NuGet 加载)。