我正在做一个小应用程序来帮助我平衡支票簿。 我正在使用Castle ActiveRecord将对象属性映射到数据库。现在这是问题所在。因为我正在赚钱计划我做了一个结构货币
结构:
public struct Currency
{
private long amount;
private CurrencyType currencyType;
public long Amount
{
get { return this.amount; }
set { this.amount = value; }
}
public CurrencyType CurrencyType
{
get { return this.currencyType; }
set { this.currencyType = value; }
}
}
我要映射的课程:
[ActiveRecord("[Transaction]")]
public class Transaction: HasOwnerModelBase
{
private Currency amount;
private Category category;
[BelongsTo]
public virtual Category Category
{
get { return this.category; }
set { this.category = value; }
}
public virtual Currency Amount
{
get { return this.amount; }
set { this.amount = value; }
}
}
现在在理想情况下,Currency对象就像一个嵌套对象,因此amount和currencyType是事务表中的两个列。 但它不是嵌套的视觉,因为我希望它像货币结构对象一样。
我不知道我应该给它的货币金额用什么标签,我真的很感激,如果有人可以帮我解决这个问题。
我希望所有这一切都很清楚。
Greatings Duncan
答案 0 :(得分:2)
以下怎么样?或者我没有得到问题?请注意,我将结构更改为类,因为您需要虚拟成员来生成动态代理,并且您不能在结构上拥有虚拟成员。顺便问一下,为什么不使用自动实现的属性?
public class Currency
{
[Property]
public virtual Int64 Amount { get; set; }
[Property]
public virtual CurrencyType CurrencyType { get; set; }
}
[ActiveRecord("[Transaction]")]
public class Transaction: HasOwnerModelBase
{
[BelongsTo]
public virtual Category Category { get; set; }
[Nested]
public virtual Currency Amount { get; set; }
}