代码之家  ›  专栏  ›  技术社区  ›  Xian

是否可以将列表<string>作为活动记录类的属性

  •  1
  • Xian  · 技术社区  · 17 年前

    [ActiveRecord]
    public class TodoList
    {
    
      [PrimaryKey]
      public int Id
      {
        get { return _id; }
        set { _id = value; }
      }
    
      [HasMany(typeof(string)]
      public IList<string> Items
      {
        get { return _items; }
        set { _items= value; }
      }
    }
    

    有人能帮忙吗?

    2 回复  |  直到 14 年前
        1
  •  8
  •   Filburt kukabuka    14 年前

    是的,你能做到。您可以将一对多关系映射到内置或简单类型(值类型或字符串),而不是持久化类型。

    您需要指定 ColumnKey , Table Element 情人节 HasMany 属性声明以使其正确连接。您必须有一个代理键列,以便AR可以处理更新和级联,然后 要素

    [HasMany(typeof(string), Table="ToDoList_Items", 
             ColumnKey = "ListItemID", Element = "Item")]
    public IList<string> Items { get; set; }
    

    (或者类似的东西——我手头没有编译器来检查它;但是根据API文档,它应该可以工作。)

    说到这里,如果你还没看过的话, http://api.castleproject.org 对于任何城堡堆叠的工作来说都是必不可少的。

        2
  •  -1
  •   akmad    17 年前

    在ActiveRecord中,类型映射到表中的记录(默认情况下)。您似乎混淆了这种类型应该如何映射到您的表。

    [ActiveRecord(Table = "MyTable")]
    public class MyClass : ActiveRecordBase<MyClass>
    {
        [Property]
        public int Id { get; set; }
    
        [Property]
        public int MyClassId { get; set; }
    
        [Property]
        public string ListItem { get; set; }
    }
    

    然后,要加载列表,请执行以下操作:

    public void LoadMyClasses()
    {
        MyClass[] results = MyClass.FindAll();
    }
    

    我建议你花点时间和那个女孩在一起 ActiveRecord documentation (或 tutorial )因为这也有助于澄清任何困惑。