1

我将位字段作为单独的字段保留在数据库中,因为可能与位相关的查询(那些是数字输入/输出)每个输入/输出有 8 位,每个表有 2 到 4 个输入/输出。我没有将这些字段规范化到另一个带有输入/输出的表中,因为存储与数据的比率很差(比如 2x 4B 键和 2-3B 数据,这是一种更好的存储方式)。

我正在使用 db-first 方法,EF 为所有这些位列生成了我的 bool 属性。目前我正在阅读那些带有位移和布尔逻辑的字段。我正在将属性读入数组并与它们进行位逻辑以获取字节,数组如下所示:

bit[] bits = new bit[8] { DO_0, DO_1, ... , DO_7 };

我正在使用 setter 数组设置属性,如下所示:

Action<bool>[] bitSetters = new Action<bool>[8] { (x) => DO_0 = x, (x) => D0_1 = x, ...};

问题是我必须为我在模型中获得的每个位列从属性和设置器数组创建值数组。还有其他方法吗?尤其是使用 EF 的一些特性。

4

1 回答 1

0

我已经找到了如何以理智的方式制作它:复杂类型。我创建了具有 8 个布尔属性和附加字节属性的新复杂类型,可以即时进行转换。

于 2013-09-03T15:29:26.777 回答