首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加入LiteDb

如何加入LiteDb
EN

Stack Overflow用户
提问于 2017-06-21 12:07:23
回答 1查看 3.8K关注 0票数 1

如何在LiteDb中连接两个表,如SQL示例:我有两个表用户和ActivityLog

这是模型

代码语言:javascript
复制
public class ActivityLog
{
    [BsonId]
    public int Id { get; set; }
    public string UserId { get; set; }
    public string Action { get; set; }
    public DateTime ActionDateTime { get; set; }
}


public class User
{
    [BsonId]
    public int Id { get; set; }
    public string UserId { get; set; }
    public string UserName { get; set; }
    public DateTime LoginDate { get; set; }

}

我需要加入Activity.UserID = User.UserId。有像sql这样的连接方式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-07 14:58:33

来自官方文档

LiteDB是一个文档数据库,因此集合之间没有连接。如果需要引用另一个文档中的文档,可以使用DbRef。可以在初始化数据库或运行查询时或在查询完成后加载此文档引用。

在你的例子中,你可以做类似的事情

代码语言:javascript
复制
public class ActivityLog
{
    [BsonId]
    public int Id { get; set; }
    public DbRef<User> User { get; set; }
    public string Action { get; set; }
    public DateTime ActionDateTime { get; set; }
}


public class User
{
    [BsonId]
    public int Id { get; set; }
    public string UserId { get; set; }
    public string UserName { get; set; }
    public DateTime LoginDate { get; set; }

}


//usage
// Getting user and activityLog collections
var usersCollection = db.GetCollection<User>("Users");
var activityLogsCollection = db.GetCollection<ActivityLog>("ActivityLogs");

// Creating a new User instance
var user = new User { UserId = 5, ...};
usersCollection.Insert(user);

// Create a instance of ActivityLog and reference to User John
var activityLog = new ActivityLog
{
    OrderNumber = 1,
    OrderDate = DateTime.Now,
    //Add it by DbRef
    User = new DbRef<User>(usersCollection, user.UserId)
};
activityLogsCollection.Insert(activityLog)

有关详细信息,请参阅文档。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44675677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档