我正在处理遗留数据库,我们有一个没有意义的字段,但我宁愿不改变数据库架构。
我正在尝试将旧的DB文本字段映射到具有布尔值的类(只需知道DB文本字段具有的一个选项)。我可以使用Forumla从数据库中获取布尔值,但我似乎可以将其保存到数据库中。
我的课程和当前流利的映射是:
public class Bulletin
{
public virtual int Id { get; set;}
public virtual bool RegularBulletin { get; set;}
}
public class BulletinMapping : ClassMap<Bulletin>
{
public BulletinMapping()
{
Table("Bulletins");
Id(x => x.Id, "ID").GeneratedBy.Identity();
Map(x => x.RegularBulletin)
.Formula("case when EmailType = 'BULLETIN_B' then 1 else null end")
.Nullable();
}
}
有没有人对如何持久保存RegularBulletin字段有任何想法?
由于 Saan
答案 0 :(得分:3)
我会使用一种解决方法 - 创建一个支持字段protected virtual string RegularBulletinString
并在其上使用您的布尔转换公式。
public class Bulletin
{
public virtual int Id { get; set;}
protected virtual string RegularBulletinString { get; set;}
public virtual bool RegularBulletin
{
get
{
return RegularBulletinString == "BULLETIN_B";
}
set
{
RegularBulletinString = value? "BULLETIN_B" : null;
}
}
}
public class BulletinMapping : ClassMap<Bulletin>
{
public BulletinMapping()
{
Table("Bulletins");
Id(x => x.Id, "ID").GeneratedBy.Identity();
Map(x => x.RegularBulletinString)
.Column("EmailType")
.Nullable();
IgnoreProperty(x=> x.RegularBulletin);
}
}