二次开发项目,数据库已经存在,后上的EF CodeFirst。
表中所有删除标识(IeDelete)均为int类型,我想在实体中映射为Bool类型,请教博友该如何操作?
---
补充:因为历史问题不能将int改为bit类型,否则原来程序会报错。
数据库里是int类型,在实体中映射为Bool类型?
对
那要是数据库里存一个3.怎么办
这个不会,我查过数据。只有 0 1
@haoyk: 你没法保证.明白吗.你既然保证只有0 1了.那就去把数据库类型转成bit
@吴瑞祥: 由于原来的数据库结构我不能改,但是我能保证数据里只有0 1。
现在讨论的不是合不合理的问题,而是找解决方案。
int类型的范围多大,你告诉我们:1234567890这个int,映射为 bool ,结果是true呢还是false?
这个问题解决了,问题就好办了。
数据库里只有0 和1 两个数据。
@haoyk:
试试[Column]配置在实体的私有的int字段上,然后创建bool类型的公共属性,在get 、set里面处理转换的逻辑
[Column("数据库里的整型字段")]
private int _isDeleted;
public bool IsDeleted{
get {return _isDeleted == 0 ;}
set{ _isDeleted = value ? 1 : 0 ;}
}
我瞎猜的,不知道行不行。
@西漠以西: 我昨天也试过类似的方案,没有成功。