1

当我尝试使用实体框架和代码优先方法通过将数据定义为来创建 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")
4

0 回答 0