什麼C#類型等同於Datastax Cassandra C#驅動程序中的timeuuid?Datastax中的Cassandra timeuuid C#驅動程序
我正在寫一個簡單的用戶跟蹤服務,並且想要訪問最新的用戶歷史記錄。我想創建一個表相當於此create語句:
CREATE TABLE IF NOT EXISTS user_history (
user_id text,
event_type text,
create_date timeuuid,
item_id text,
PRIMARY KEY ((user_id, event_type), create_date)
);
我已經做了以下類:
[AllowFiltering]
[Table("user_history")]
public class UserHistory
{
[PartitionKey(1)]
[Column("user_id")]
public string UserID;
[PartitionKey(2)]
[Column("event_type")]
public string EventType;
[ClusteringKey(1)]
[Column("create_date")]
public DateTime CreateDate { get; set; }
[Column("item_id")]
public string ItemID;
}
,我使用這個語句來創建卡桑德拉表:
var table = Session.GetTable<UserHistory>();
table.CreateIfNotExists();
但是這給了我如下表:
CREATE TABLE user_history (
user_id text,
event_type text,
create_date timestamp,
item_id text,
PRIMARY KEY ((user_id, event_type), create_date)
)
如您所見,create_date
的類型是timestamp
而不是timeuuid
。
我試過Guid
而不是DateTime
,但是當我打電話給.CreateIfNotExists()
時,它給了我一個uuid
。
我是否應該使用Guid
而不是DateTime
作爲CreateDate
並使用原始CQL3創建表格?我想這將允許我讀/寫Cassandra的timeuuid
(使用FluentCandandra項目中的GuidGenerator
)? (回憶一下:我使用的是Datastax驅動程序)
你是否感受到卡桑德拉的愛? –
是的。目前爲止,我喜歡數據模型。我已將CreateDate更改爲Guid,並使用原始CQL而不是table.CreateIfNotExists()創建表。工作正常。 – user628904