亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# DataStax 驅動程序中的 CassandraEntityBase

C# DataStax 驅動程序中的 CassandraEntityBase

C#
慕桂英4014372 2023-09-16 16:12:58
我有一個 .net core 應用程序,它通過 DataStax 驅動程序將數據保存到 Cassandra 實例。我的 Cassandra 實體有一個基類?,F在,如果我想將 TimeUUID 類型 id 放入此基類中,則在插入時會收到錯誤:Some partition key parts are missing: id同樣的方法也適用于 EntityFramework。而且問題不在于我的表、連接或鍵空間,因為當我將 id 字段帶回實體本身時,它就可以工作了。我的插入方法public void Insert<T>(T entity) where T : EntityBase{    _mapper.Insert(entity);}我的基礎班public class EntityBase{    [Column(name: "id")]    public  TimeUuid Id { get; private set; } = TimeUuid.NewId();}繼承基類的實體類[Table(Keyspace = "unimportant", Name = "irrelevant")]public class Irrelevant : EntityBase{    //fields}你能告訴我有什么問題嗎?有沒有辦法聲明 CassandraEntityBaseClass ?
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

找到了。這是故意的。在PocoDataFactory.cs第 102 行我找到了它:

return?t.GetTypeInfo().GetProperties(PublicInstanceBindingFlags).Where(p?=>?p.CanWrite);

什么是 CanWrite ?

獲取一個值,該值指示該屬性是否可寫入。

由于我的財產是只讀的

public??TimeUuid?Id?{?get;?private?set;?}?=?TimeUuid.NewId();

我重寫了我的代碼(僅用于測試)如下并且它有效:

public??TimeUuid?Id?{?get;?set;}

現在,我將選擇在存儲庫或對象存儲庫插入期間設置我的屬性。


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 114 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號