DataStax c#驱动程序:如何用IEnumerable映射创建表

本文关键字:IEnumerable 映射 创建 何用 驱动程序 DataStax | 更新日期: 2023-09-27 18:18:44

我想使用Table.CreateIfNotExists()来动态创建我的模式,但是我不知道如何使它为IEnumerable而不是"list"创建一个"set"列类型。

不使用CQL语句创建表是否可能?

For<ClassWithSet>()
            .TableName("withset")
            .PartitionKey(u => u.Id)
            .Column(u => u.SomeStrings, cm => cm.WithName("somestrings").WithDbType<IEnumerable<string>>());
var table = new Table<ClassWithSet>(session);
table.CreateIfNotExists();

DataStax c#驱动程序:如何用IEnumerable映射创建表

您应该使用SortedSet<T>作为数据库类型:

For<ClassWithSet>()
            .TableName("withset")
            .PartitionKey(u => u.Id)
            .Column(u => u.SomeStrings, 
                cm => cm.WithName("somestrings").WithDbType<SortedSet<string>>());
var table = new Table<ClassWithSet>(session);
table.CreateIfNotExists();