我正在研究.net核心项目,并使用cassandra作为数据存储。 我需要忽略要存储在数据库中的列,我在EF和Mongo db中看到的是 IgnoreBson 属性,但是我无法使用linq用.net驱动程序找到Cassandra的解决方案。 我已经看到了Java驱动程序的解决方案,但没有.net驱动程序。 我正在关注Architecture of Playground / Preview app。
谢谢。
答案 0 :(得分:3)
您可以使用MappingConfiguration
定义实体如何映射到列。如果只需要包含特定的列,请使用选项ExplicitColumns
:
MappingConfiguration.Global.Define(
new Map<User>()
.TableName("users")
.PartitionKey(u => u.UserId)
.ExplicitColumns()
.Column(u => u.UserId, cm => cm.WithName("id")));
如果您使用的是基于属性的映射,则可以在ExplicitColumns
上设置TableAttribute
:
[Table("users", ExplicitColumns = true)]
public class User
{
// ...
}
如果您想使用实体中的大多数属性,而只忽略其中的少数几个属性,则也可以使用IgnoreAttribute
:
[Table("users")]
public class User
{
// ...
[Ignore]
public string IgnoreMe { get; set; }
}
答案 1 :(得分:1)
在EF Core中非常简单。您有两个选项,数据注释或流畅的配置。
流利的配置使其更适合“实践”,因此,如果可能,我会倾向于这种做法。.以下是这两种方法的一些示例:https://docs.microsoft.com/en-us/ef/core/modeling/included-properties