Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用nHibernate Linq提供程序查询存储为字符串的枚举_C#_Nhibernate_Linq To Nhibernate - Fatal编程技术网

C# 使用nHibernate Linq提供程序查询存储为字符串的枚举

C# 使用nHibernate Linq提供程序查询存储为字符串的枚举,c#,nhibernate,linq-to-nhibernate,C#,Nhibernate,Linq To Nhibernate,我目前在数据库中有一个作为字符串保存的枚举。现在,我使用nHibernate的Linq提供程序在这个枚举上查找和过滤什么,但我不断得到异常 我已尝试将枚举与枚举列表进行比较,Twired.ToString() 我仍然无法让它工作 自定义约定是否仅对分离的条件有效?是否使用Fluent NHibernate?如果是,您可以使用用户映射()。。。 此外,确保自动映射不会与Fluent NH冲突,并且正确注册了所有约定 您需要创建一个自定义IUserType来将枚举转换为其字符串表示形式并返回。C#中

我目前在数据库中有一个作为字符串保存的枚举。现在,我使用nHibernate的Linq提供程序在这个枚举上查找和过滤什么,但我不断得到异常

我已尝试将枚举与枚举列表进行比较,Twired.ToString() 我仍然无法让它工作


自定义约定是否仅对分离的条件有效?

是否使用Fluent NHibernate?如果是,您可以使用用户映射()。。。
此外,确保自动映射不会与Fluent NH冲突,并且正确注册了所有约定

您需要创建一个自定义IUserType来将枚举转换为其字符串表示形式并返回。C#中有一个很好的例子

还有一个帖子是相同的:


希望这对您有所帮助。

我使用GenericEnumMapper,在链接查询方面从未遇到任何问题

Map(x => x.Status).CustomType<GenericEnumMapper<MerchantStatus>>();
Map(x=>x.Status).CustomType();
不知道如何将其应用于自动映射,因为我很少使用它。也许是这样的

.Override<MerchantStatus>(map =>
{
  map.Map(x => x.Status)
    .CustomType<GenericEnumMapper<MerchantStatus>>();
});
.Override(映射=>
{
map.map(x=>x.Status)
.CustomType();
});

我们使用的是Fluent nHibernate和Map(),由于我们能够查询实体并保存和填充值,因此约定已正确注册。当我试图查询特定的枚举字段时,这些人就会出现。你有使用fluent nhibernate的示例吗?这是否也适用于。其中(e=>enumCollection.Contains(e.enum))我从未以这种方式使用过它。我刚刚做了一个小测试用例,它正在工作。我正在使用fluent nhibernate 1.2和捆绑的hibernate。数据库后端是postgresql。我来试试。到目前为止,我不得不以各种各样的方式来解决这个问题。谢谢你的指导。