gpt4 book ai didi

c# - LiteDB 对不同的条目使用相同的 ID

转载 作者:行者123 更新时间:2023-12-04 09:45:56 25 4
gpt4 key购买 nike

我有一个数据库,我试图在其中添加消息,并且我使用 channelID 作为 LiteDB id。我想以某种方式在同一个 channel 中发布超过 1 条消息,但为此我必须以某种方式使用相同的 ID。

   private LiteDatabase Database { get; } = new LiteDatabase(@"data/msg.db");

public ILiteCollection<Message> Messages { get { return Database.GetCollection<Message>("Messages"); } }

public void Add(int channelid, Message message)
{
message.ChannelID = channelid;
Messages.Insert(message);

//Books.Add(book.Id,book);
}

消息类
public class Message
{
[LiteDB.BsonId]
public int ChannelID { get; set; }

public int User { get; set; }

public DateTime Date { get; set; }

public string Text { get; set; }
}

这是我要复制的 API: http://www.webservies.be/chat/swagger/index.html
在这种情况下,当我想发布消息时可以使用相同的 channelID。

最佳答案

如果您希望您的类(class)与您发布的 API 相匹配,您将需要一个额外的 ChannelMessage 具有一对多关系的类.一个聊天 channel 可以有很多消息,对吧?

就像是

public class Channel
{
[BsonId]
public int ChannelId { get; set; }
public string Name { get; set; }

[BsonRef]
public List<Message> Messages { get; set; }
}

public class Message
{
[BsonId]
public int MessageId { get; set; }
public int ChannelId { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
public string Text { get; set; }
}

插入新消息与您已经完成的操作非常相似。
public void Add(int channelId, string text, int userId)
{
var message = new Message {
ChannelId = channelId,
Text = text,
UserId = userId,
Date = DateTime.Now
};

Messages.Insert(message);
}

关于c# - LiteDB 对不同的条目使用相同的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62117416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com