2

我正在使用 AWS 键空间并尝试从 C# 插入数据但收到此错误。“此操作不支持一致性级别 LOCAL_ONE。支持的一致性级别是:LOCAL_QUORUM”。任何人都可以在这里帮忙。

AWS 密钥空间

CREATE KEYSPACE IF NOT EXISTS "DevOps"
   WITH REPLICATION={'class': 'SingleRegionStrategy'} ;

桌子

CREATE TABLE IF NOT EXISTS "DevOps"."projectdetails" (
"id" UUID PRIMARY KEY,
"name" text,
"lastupdatedtime" timestamp,
"baname" text,
"customerid" UUID)

C# 代码

 public async Task AddRecord(List<projectdetails> projectDetails)
        {

            try
            {
                if (projectDetails.Count > 0)
                {
                    foreach (var item in projectDetails)
                    {
                        projectdetails projectData = new projectdetails();
                        projectData.id = item.id;
                        projectData.name = item.name;
                        projectData.baname = "Vishal";
                        projectData.lastupdatedtime = item.lastupdatedtime;
                        projectData.customerid = 1;
                        await mapper.InsertAsync<projectdetails>(projectData);
                    }
                }
            }

            catch (Exception e) 
            { 

            }
        }
4

1 回答 1

4

该错误清楚地表明您需要使用正确的一致性级别LOCAL_QUORUM而不是LOCAL_ONE默认使用的一致性级别。 AWS 文档说,对于写操作,它只支持一致性级别。您可以使用接受CqlQueryOptions的版本InsertAsync来设置一致性级别,如下所示(在应用程序初始化期间,可能只创建一次查询选项的实例):

mapper.InsertAsync<projectdetails>(projectData, 
  new CqlQueryOptions().SetConsistencyLevel(ConsistencyLevel.LocalQuorum))
于 2020-06-08T17:06:12.420 回答