我正在使用cassandracsharpdriver 3.4.0.1
我的C#应用程序需要创建新的密钥空间,并能够在它们之间开放。一切正常,除了直接table linq查询,例如:
_table.Where(...).Execute(),
总是从第一个键空间返回数据,即使我使用新会话重新创建表对象(或在同一会话上使用thechkeyspace(。
使用executeasync(由表对象创建(在会话上执行插入语句工作正常,并且数据正确插入了新的键空间。
var insert = _table.Insert(new Values()
{
...
});
_session.ExecuteAsync(insert);
您应该在映射中每个表定义一个类。如果您在不同的键空间中有2个不同的表,则应使用2个不同的类。
另外,您应该避免在Session
上的键空间之间切换以查询不同的表,您可以在映射定义中指定表的键:
MappingConfiguration.Global.Define(
new Map<User>()
.TableName("users")
.KeyspaceName("ks1")
// ...
)
MappingConfiguration.Global.Define(
new Map<AnotherClass>()
.TableName("table2")
.KeyspaceName("ks2")
// ...
)