【发布时间】:2014-03-25 01:08:03
【问题描述】:
当我尝试使用 Linq 查询上下文时,我收到了 Firebird Embedded 的 Unknown data type 错误。
似乎只有在 Linq 生成参数化查询发送到数据库时才会失败;如果该值是硬编码的,则可以正常工作。此外,它只在我的 Code First 数据库上失败;如果我先创建数据库,它就可以工作。但是,我正在尝试学习 Code First,因此无法选择创建数据库。
using (var context = new FirebirdDbContext(connectionString))
{
context.Users.Add(new User()
{
Created = DateTime.Now,
Name = "smith"
});
context.SaveChanges();
bool found = context.Users.Any(u => u.Name == "smith"); // this works
string name = "smith";
found = context.Users.Any(u => u.Name == name); // exception
}
应用程序的其余部分与我的other post 相同,只是我现在使用的是 Entity Framework 6.1.0。其实错误也是一样的,只是原因不同。
如果这是 Firebird 库中的错误,我会感到惊讶(而且我没有在他们的错误跟踪器中看到它列出)。有谁知道我做错了什么?
编辑:该错误仍然存在于 Firebird ADO.NET Provider(适用于 Entity Framework 6)版本 4.1.5.0。
【问题讨论】:
-
你正在运行什么 Firebird 服务器?
-
@cincura.net Firebird Embedded 出现错误,因此没有服务器。我正在使用 NuGet 的最新版本:Firebird ADO.NET Data provider (Entity Framework 6) version 4.1.0.0。
-
@vincentj 即使 Firebird Embedded 也有版本号。您使用的是哪个版本的 Firebird Embedded?
-
@MarkRotteveel 哦,对不起,我忘记了那些不是来自 NuGet 的! fbembed.dll 和 ib_util.dll 是 2.5.2.26540 版本。 ICU DLL 版本为 3.0.0.0。
-
我刚刚在 Firebird 3.0 Alpha 2(版本 3.0.0.30809)和最新的快照版本 (3.0.0.30988) 上进行了尝试,都产生了同样的错误。
标签: c# linq ef-code-first firebird entity-framework-6