我有一个.net核心应用程序,它通过datastax驱动程序将数据持久化到cassandra示例。
我的cassandra实体有一个基类。现在,如果我想将我的timeuuid type id放入这个基类中,插入时会出现以下错误:
Some partition key parts are missing: id
同样的方法也适用于entityframework。另外,问题不在于我的表、连接或键空间,因为当我将id字段带回entty本身时,它就工作了。
我的插入方法
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条答案
按热度按时间kmpatx3s1#
找到了。这是故意的。在pocodatafactory.cs第102行中,我找到了它:
什么是canwrite?
获取一个值,该值指示是否可以写入属性。
来源:propertyinfo.canwrite属性
因为我的财产是只读的
我重新编写了我的代码(仅用于测试),如下所示:
现在,我将选择在插入存储库或对象时设置属性。