Ожидаемый System.String, получил System.Guid - PullRequest
3 голосов
/ 19 октября 2010

Я надеюсь, что есть очень простое объяснение, почему я получаю эту ошибку.

Я использую S # arpArcitecture 1.6.на 64-битной установке Windows 7.

В строке 3 следующего кода выдается ошибка:

{"Указан неверный тип. Ожидается: 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
{ }   

1 Ответ

0 голосов
/ 20 октября 2010

Я думаю, что ваше отображение должно быть таким:

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();
}
...