1

如何在 LiteDB 中使用DbRef。我有两个Customer和的课程Job。我希望客户存储客户拥有的工作列表。

所以在客户类中,我需要有一个DbRef<Job> Jobs我所理解的。我有几个问题。首先, DbRef 不被识别为带有using LiteDB. 其次,我不知道如何实现它

作业.cs

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

客户.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:找不到类型或命名空间名称“DbRef”

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

4

1 回答 1

-1

使用LiteDB.2.0.0-rc并按照test page中的示例,对我来说效果很好。

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);
}

得到

using (var db = new IncludeDatabase())
{                
    return db.SubFolders
        .Include(x => x.Folder)
        .FindAll().ToList();
}
于 2016-07-16T23:43:56.043 回答