gpt4 book ai didi

NHIbernate 只读属性 - 流畅的映射

转载 作者:行者123 更新时间:2023-12-04 23:27:31 25 4
gpt4 key购买 nike

我有下一个实体:

public class Topic : EntityBase
{
private readonly ICollection<Vote> _votes;

public virtual string Title { get; protected set; }
public virtual ICollection<Vote> Votes
{
get { return _votes; }
}

public virtual int VotedUpCount
{
get
{
return _votes.Count(v => v.VotedTo == VoteType.VoteUp);
}
}
}

我需要映射我的 VotedUpCount (因为我有一个来自 NH 的错误)。 但是 我不需要这个属性作为我数据库中的列。

我试过这个并得到一个错误 Invalid column name 'VotedUpCount'.
public class TopicMap : ClassMap<Topic>
{
public TopicMap()
{
Id(x => x.Id);
Map(x => x.Title);
Map(x => x.VotedUpCount).Access.ReadOnly();
HasMany<Vote>(x => x.Votes)
.Cascade.All();
}
}

有没有办法使用流畅的接口(interface)映射只读属性以使该实体工作?

最佳答案

为什么要映射它?它只是一个执行一些代码(也可能是一种方法)的 .NET 属性,与数据库无关,根本不映射它。

如果您需要一个真正的 DB 属性(其中值来自 DB 列)映射为只读:

Map(x => x.PropertyName).Column("ColumnName").ReadOnly();
// Alternative (does exactly the same, but is more like the NHibernate mapping:
Map(x => x.PropertyName).Column("ColumnName").Not.Insert().Not.Update();

关于NHIbernate 只读属性 - 流畅的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com