LINQ提供程序 - 通过数组索引器映射对象?

时间:2011-03-23 22:59:18

标签: nhibernate linq-to-nhibernate

我有一个类,LanguageModeration。它包含多种语言的布尔值,显示它们是否已被审核。我已经实现了一个索引器,允许我通过一个名为Language的Enum进行选择。像这样:

public class LanguageModeration
{
    public ModerationRecord EN {get;set;}
    public ModerationRecord FR {get;set;}
}

public ModerationRecord  this[Language l]
{
    get
    {
        if (l == Language.English) return EN;
        else return FR;
    }
}

我想在NHibernate LINQ表达式中使用这种语法(或类似的东西),例如:

from m in _exampleLanguageModerationList where m[Language.English] == false select m

这不起作用,我明白了:

System.NotSupportedException: Dm.Mvc.Data.SiteObjects.ModerationRecord get_Item(Dm.Mvc.Data.Types.Language)

现在甚至可以用NHibernate LINQ做我想做的事情吗?

1 个答案:

答案 0 :(得分:0)

您正在针对m[Language.English]测试bool

由于您要返回EN或FR ..您的索引器的返回类型不应该是bool吗?