可持久的集合哈希码

时间:2013-09-16 00:24:24

标签: c# entity-framework hash

请参阅下面的对象。我需要做的是在实体框架中查询包含特定Option选项的MyObject实例。例如,我想要所有MyObject,其中Options集合包含Option Id = 1&选项Id = 5,没有其他选项。

public class MyObject
{
    public int Id { get; set; }

    //... More Properties

    public IEnumerable<Option> Options { get; }
}

public class Option
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我正在考虑尝试实现某种选项哈希并持久化它。然后,我的查询将是“MyObject.OptionHash == [HASH]”。据我所知,典型的哈希算法无法生成有保证的唯一哈希。任何意见或建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

以下查询应该这样做。

var itemsToCheck = new int[] {1, 5};
var filtered = myObjects.Where(myObject => !myObject.Options.Except(itemsToCheck).Any())