nhibernate - 预期的 System.String,得到 System.Guid

标签 nhibernate fluent-nhibernate guid s#arp-architecture

我希望有一个非常简单的解释为什么我会收到此错误。

我正在使用 S#arpArcitecture 1.6。在 64 位 Windows 7 安装上。

以下代码的第 3 行给出了错误:

{“提供了错误类型的 id。预期:System.String,得到了 System.Guid”} System.Exception {NHibernate.TypeMismatchException}

1 public Category GetCategory(Guid id)
2    {
3        Category cat = categoryRepository.Get(id);
4        return cat;
5    }

支持信息

表(SQL Server 2008)

CREATE TABLE [dbo].[MasterCategories] (
    [masterCategoryId] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
    [organizationId] [nchar](5) NOT NULL,
    [categoryNumber] [nvarchar](25) NOT NULL
)

实体定义

public class Category : EntityWithTypedId<Guid>

流畅的映射

public void Override(AutoMapping<Category> mapping)
    {
        mapping.Table("MasterCategories");

        mapping.Id(x => x.Id).Column("masterCategoryId");
        mapping.Map(x => x.Number).Column("categoryNumber");

        mapping.References(x => x.Organization)
            .Column("organizationId")
            .Cascade.All();
    }

存储库界面

public interface ICategoryRepository : IRepositoryWithTypedId<Category,Guid>
{
}

存储库

public class CategoryRepository : 
             RepositoryWithTypedId<Category,Guid>, 
             ICategoryRepository
{ }   

最佳答案

我认为你的映射需要像这样:

public void Override(AutoMapping<Category> mapping)
{
    mapping.Table("MasterCategories");
    mapping.Id(x => x.Id).Column("masterCategoryId").GeneratedBy.Guid();
    mapping.Map(x => x.Number).Column("categoryNumber");

    mapping.References(x => x.Organization)
            .Column("organizationId")
            .Cascade.All();
}

关于nhibernate - 预期的 System.String,得到 System.Guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971279/

相关文章:

nhibernate - 内存中的 SQLite 和 NHibernate

nhibernate - 数据类型的 HQL 表达式等价物

nhibernate - 验证 block 与 Nhibernate.Validator

fluent-nhibernate - 使用 fluent-nhibernate 是否可以在实体内自动映射值对象?

c# - Fluent Nhibernate,添加排序规则作为约定的一部分

c# - 较短的 GUID 如何对用户友好?

NHibernate - 非法访问加载集合

c# - Fluent NHibernate 映射引用

mysql - UNHEX 和 X (MySQL) 的区别

xml - SOAP 用户界面 : is it possible to autogenerate the value from an element in a SOAP message?