2

我打算在数据库的单列表中插入/删除模块操作(使用 Orchard Rules-Action API)中的一些信息。执行此类任务的最佳方式是什么,即非内容项目的数据操作。我不想走“创建内容类型”的路线。我只是想在数据库中保留一些非内容数据并查询/删除它们。

namespace xyz.Models
{
    public class Task
    {
        public virtual int ContentId { get; set; }
        public virtual int Retries { get; set; }
    }
}

SchemaBuilder.CreateTable("Task",
                     table => table
                         .Column<int>("ContentId")
                         .Column<int>("Retries")                     
                     ); 


                return 1;

namespace Xyz.Services
{
    public class TaskService : ITaskService
    {
        private readonly IRepository<Task> _taskRepository;

        public TaskService(IRepository<Task> taskRepository)
        {
            _taskRepository = taskRepository;
        }

        public Task CreateTask(int contentId)
        {
            var task = new Task { ContentId = contentId };
            _taskRepository.Create(task);
            return task;
        }
   }
}
4

1 回答 1

4

如果您的意思是“创建没有ContentPart内容的表格”,那么只需在模型文件夹中创建所需的模型:

  public class MyRecord{

        public virtual int Id { get; set; }

        public virtual string FOO{ get; set; }

        public virtual string BAR{ get; set; }

    }

显然您必须在迁移中创建一个表,如下所示:

SchemaBuilder.CreateTable("MyRecord",
                table => table
                    .Column<int>("Id", c => c.PrimaryKey().Identity())
                    .Column<string>("FOO")
                    .Column<string>("BAR")
                ); 

最后,您希望在表上进行事务,只需注入模型的实例repository

private readonly IRepository<MyRecord> _repository;

public SomeClass(IRepository<MyRecord> repository){
    _repository = repository;    
}


  public SomeMethod(){
        var record = new MyRecord();
        //initialize your class here
      _repository.Create(record);
  }

需要注意的重要一点是,您的记录类必须位于 Models 文件夹中,并且必须包含 Id 属性。

于 2013-07-02T17:07:02.593 回答