如何在LiteDB中使用DbRef

时间:2016-03-09 17:22:01

标签: c# asp.net litedb

如何在LiteDB中使用DbRef。我有CustomerJob的课程。我希望客户存储客户的工作列表。

所以在Customer课程中,我需要根据我的理解获得DbRef<Job> Jobs。我有几个问题。首先,DbRef不会被识别为using LiteDB的类型。其次,我不知道如何实现它

Job.cs

namespace HMDCompare.Classes
{
  public class Job
  {
    public int id { get; set; }
    public string name { get; set; }
  }
}

Customer.cs

using LiteDB;

namespace HMDCompare.Classes
{
    public class Customer
    {
        [BsonId]
        public int Id { get; set; }

        public string Name { get; set; }
        public string[] Phones { get; set; }
        public bool IsActive { get; set; }

        public DbRef<Job> Jobs { get; set; }
    }
}

我在Visual Studio中获得的DbRef:类型或命名空间名称&#39; DbRef&#39;无法找到

我正在使用C#/ ASP.net 4.5和LiteDB 2.0.0-rc

进行开发

1 个答案:

答案 0 :(得分:0)

使用LiteDB.2.0.0-rc并按照test page中的示例,对我工作正常。

z

.....

添加

public IncludeDatabase() : base("mydb.db")
{
}

public LiteCollection<Folder> Folders { get { return this.GetCollection<Folder>("Folders"); } }
public LiteCollection<SubFolders> SubFolders { get { return this.GetCollection<Media>("SubFolders"); } }

protected override void OnModelCreating(BsonMapper mapper)
{
    mapper.Entity<SubFolder>()
        .DbRef(x => x.Folder, "Folders");
}

获取

var subFolder = new SubFolder()
{
    Name = file.Name,
    Folder = new Folder { Id = idFolder },
};

using (var db = new IncludeDatabase())
{                
    db.SubFolders.Insert(subFolder);
}