Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取LiteDB c#.net中的最新插入_C#_.net_Linq_Litedb - Fatal编程技术网

获取LiteDB c#.net中的最新插入

获取LiteDB c#.net中的最新插入,c#,.net,linq,litedb,C#,.net,Linq,Litedb,我正在创建一个方法,将最后一个事务插入litedb 我确实有一个保存的日期字符串 下面是课堂: public class TransactionPair : TransactionTwo { private string returnT; public TransactionPair() { /* making an empty declaration so we don't NEED to pass it anything if we don't want. */}

我正在创建一个方法,将最后一个事务插入litedb

我确实有一个保存的日期字符串

下面是课堂:

public class TransactionPair : TransactionTwo
{
    private string returnT;
    public TransactionPair() { /* making an empty declaration so we don't NEED to pass it anything if we don't want. */}

    public TransactionPair(string returnT, string request)
    {
        this.returnT = returnT;
        JObject o = JObject.Parse(returnT);
        AuthCode = o.GetValue("AuthoCode").ToString();
        TransType = o.GetValue("TransType").ToString();
        AmountString = o.GetValue("AmountString").ToString();
        CardType = o.GetValue("CardType").ToString();
        Last4 = o.GetValue("Last4").ToString();
        RefID = o.GetValue("RefID").ToString();
        CardToken = o.GetValue("CardToken").ToString();
        ExpDate = o.GetValue("ExpDate").ToString();
        DateString = DateTime.Now.ToString("d-MMM-yyyy:HH:mm:ss.f", DateTimeFormatInfo.InvariantInfo);
        Request = request;
    }

    public string Request { get; set; }
}
以下是transaciton对的插入方法

  public void InsertTransactionPair(string json, string request)
    {
        JObject transObj = JObject.Parse(json);

        using (var db = new LiteDatabase(connectionString))
        {
            var collection = db.GetCollection<TransactionPair>("TransactionPair");
            var transactionTwo = new TransactionPair
            {
                AuthCode = GetValue(transObj, "AuthCode"),
                TransType = GetValue(transObj, "TransType"),
                AmountString = GetValue(transObj, "AmountString"),
                CardType = GetValue(transObj, "CardType"),
                Last4 = GetValue(transObj, "Last4"),
                RefID = GetValue(transObj, "RefID"),
                CardToken = GetValue(transObj, "CardToken"),
                DateString = DateTime.Now.ToString("d-MMM-yyyy:HH:mm:ss.f", DateTimeFormatInfo.InvariantInfo),
                Request = request
            };
            collection.Insert(transactionTwo);

            collection.EnsureIndex(x => x.RefID);
        }
    }
public void InsertTransactionPair(字符串json,字符串请求)
{
JObject transObj=JObject.Parse(json);
使用(var db=新的LiteDatabase(connectionString))
{
var collection=db.GetCollection(“TransactionPair”);
var transactionTwo=新TransactionPair
{
AuthCode=GetValue(transObj,“AuthCode”),
TransType=GetValue(transObj,“TransType”),
AmountString=GetValue(transObj,“AmountString”),
CardType=GetValue(transObj,“CardType”),
Last4=GetValue(transObj,“Last4”),
RefID=GetValue(transObj,“RefID”),
CardToken=GetValue(transObj,“CardToken”),
DateString=DateTime.Now.ToString(“d-MMM-yyyy:HH:mm:ss.f”,DateTimeFormatInfo.InvariantInfo),
请求=请求
};
收款。插入(交易二);
collection.EnsureIndex(x=>x.RefID);
}
}

我需要一个Linq方法来查找最新的条目,或者它就像一个队列,我可以在返回查询中弹出第一个值并获取最新的值?

默认情况下,LiteDB中的记录在查询时按主键(
\u id
默认情况下)排序。从您提供的代码中,我无法判断主键的数据类型,但如果它是一个整数且未手动设置,则您只需查找最后一条记录:

collection.FindOne(Query.All(Query.Descending))
如果不能保证主键是有序的(例如,如果数据类型是
Guid
),则需要使用另一种方法。不幸的是,我认为DateString不会有多大帮助:任何对它排序的查询都会按字母顺序排序,而不是按时间顺序排序。如果可能,我建议使用
DateTime
属性来存储当前时间戳,而不是将其存储为
字符串。这样做可以让您轻松地对记录进行排序,例如:

collection.EnsureIndex("Timestamp");
collection.FindOne(Query.All("Timestamp", Query.Descending));

Guid包含一些原始值信息,如CreationTime(system.datetime)、增量、机器、Pid、时间戳。也许您可以在查询中使用它们。

谢谢您的帮助。我会试试的。那很有趣。我也会试试。非常感谢。