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

Xia*_*ian 1 c# collections castle-activerecord

是否可以在ActiveRecord类上具有基本类型(如String)的HasMany关系,而无需创建另一个实体(如(TodoListItem))来保存该值.

[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; }
  }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Nei*_*itt 8

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

你需要指定ColumnKey,TableElement在PARAMS HasMany属性声明得到它,正确连接起来.您必须有一个代理键列,以便AR可以处理更新和级联,然后Element告诉AR表中的哪个列包含它将用于制作列表的简单值.

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

(或类似的东西 - 我没有在这个盒子上有一个编译器来检查它;但根据API文档,它应该工作.)

说到这一点,如果您还没有看过,http://api.castleproject.org对于使用Castle堆栈的任何工作都是必不可少的.