我在Oracle 12c
使用Code First。我有一个班级
public class Table1
{
public Guid Id { get; set; }
public string SomeOtherStuff { get; set; }
}
实体框架将ID转换为RAW
CREATE TABLE "FB"."Media"
( "Id" RAW(16) NOT NULL ENABLE, ...
现在如果我这样做:
var list = db.Table1.SqlQuery("select * from Table1")).ToList();
我收到错误
' Id'表1'表1'无法设置为“System.Byte []'值。您必须将此属性设置为类型为' System.Guid'}的非空值。
编辑我正在使用Oracle.ManagedDataAccess.EntityFramework 6.121.2.0
答案 0 :(得分:0)
问题是您的Oracle EF提供程序将Guid
映射到Raw
类型,但反过来,Raw
会映射到字节数组。
如果您的提供商支持,您可以尝试自己指定列类型(取决于您的提供商,可能不支持)。
public class Table1
{
[Column("Id", TypeName="VARCHAR(50)")]
public Guid Id { get; set; }
public string SomeOtherStuff { get; set; }
}