当我尝试使用实体框架和代码优先方法通过将数据定义为来创建 varbinary 列“数据”时。
Public Property Data() As Byte()
问题是当我运行程序时,为该表生成的脚本没有指定 varbinary 的长度,这显然会中断执行并从 mysql 服务器返回语法错误。
CREATE TABLE `TestAction`(
`ID` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Name` mediumtext NOT NULL,
`Data` varbinary,
`Tested` datetime NOT NULL,
`TestID` int NOT NULL);
我已经尝试启动字节数组并向属性添加了最大长度属性,但没有成功。有没有人成功做到这一点?或者可以提供帮助将不胜感激
回答 - -
我设法通过使用流利的 api 强制实体框架将我的 byte() 转换为 varbinary 然后在关联的 EntityTypeConfiguration 类中设置最大长度来解决这个问题。我之前尝试过类似的东西,但是将长度与 HasColumnType() 方法中的类型名称结合起来,这样 ...HasColumnType("varbinary(45) 但这不起作用。下面的代码行却解决了我的问题。
[Property](Function(P) P.Name).IsRequired().HasMaxLength(45).HasColumnType("varbinary")