尝试在代码中使用IPv6地址,使用EF6进行持久化。
实体框架6似乎不像.NET BigIntegers
。在代码优先的情况下,如果您尝试使用以下方法添加迁移:
Public Property StartBigInt As BigInteger
您将获得以下内容:
属性'StartBigInt'不是'AssignmentIPV6'类型的声明属性。使用Ignore方法或NotMappedAttribute数据批注验证是否未从模型中显式排除该属性。确保它是有效的原始属性。
因此代码优先不满意将BigInteger
映射到SQL Server bigint
类型。
每行保存一个地址范围(使用开始和停止地址),因此匹配只询问给定地址是否在每个开始和放大器内。停止一行的列。
EF6中的代码优先让我这么好,但现在我有点蠢,而且我怀疑我试图使用BigInt/BigInteger
代表SQL Server {{ 1}}列实际上可能不是使用IPv6地址的最佳方式。
你们有什么人使用这些128位地址?
P.S。我有VB功能扩展&压缩IPv6地址,如果它们可以对任何人使用。我计划扩展压缩地址,转换为bigint
,然后保留在SQL Server 2008 R2中。现在我不太确定我做的是正确/最好的事情!