我不得不使用关系对象解决多对多数据库设计问题,但我需要确保没有重复项。我希望我可以将相关对象的集合定义为HashSet,但ServiceStack不喜欢它。这是我用于OrmLite的POCO的简化版本:
public class Foo
{
public int Id { get; set; }
[Reference]
public HashSet<FooToBar> FooToBars { get; set; }
}
public class Bar
{
public int Id { get; set; }
public string Name { get; set; }
}
public class FooToBar
{
public int Id { get; set; }
[References(typeof(Foo))]
public int FooId { get; set; }
[References(typeof(Bar))]
public int BarId { get; set; }
// This is the requirement that makes it a little odd
public string Option { get; set; }
}
分类Foo
只能包含与Bar
相关的唯一Option
s。从C#角度来看,HashSet
非常适用于此,但ServiceStack正在HashSet
类型上查找相关实体ID。
我有什么方法可以做到这一点,不会让ServiceStack吓坏了吗?
答案 0 :(得分:1)
引用类型属性需要是List,您仍然可以拥有HashSet属性,但它不能成为引用属性,即它会被POCO吞噬。