[英]Interbase XE7 and Entity Framework 6.1.2
目前我正在开发一个项目,我想使用Entity Framework为Interbase数据库创建一个数据库层。 唯一的问题是我无法让它工作,所以我转向我心爱的SO共同用户。
我目前正在使用:
Visual Studio 2013 Premium
Interbase XE7开发人员版( 在此下载 )
实体框架6.1.2
提供Interbase XE7安装的Interbase ADO.NET驱动程序
在这个例子中,我创建了一个非常简单的数据库,只有1个表UserTypes
,其中包含ID
和Description
。
我编写了以下代码来表示我的UserTypes
模型和我的上下文(这确实是非常基本的):
public class MyContext : DbContext
{
public MyContext(DbConnection connection)
: base(connection, true)
{ }
public virtual DbSet<UserTypes> UserTypes { get; set; }
}
public class UserTypes
{
[Key]
public int ID { get; set; }
[StringLength(40)]
public string Description { get; set; }
}
在我的Main
我创作了以下代码:
static void Main(string[] args)
{
TAdoDbxConnectionStringBuilder CnStrBuilder = new TAdoDbxConnectionStringBuilder()
{
User_Name = "SYSDBA",
Password = "masterkey",
DBHostName = "localhost",
Database = @"C:\Users.gdb",
DriverName = "Interbase"
};
DbConnection connection = new TAdoDbxInterBaseConnection();
connection.ConnectionString = CnStrBuilder.ConnectionString;
using (var context = new MyContext(connection))
{
Console.WriteLine("Showing all user types");
var query = from ut in context.UserTypes
orderby ut.ID
select ut;
foreach (var userType in query)
{
Console.WriteLine("{0}: {1}", userType.ID, userType.Description);
}
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
但是,当我运行应用ProviderIncompatibleException
时,在执行LINQ查询时会抛出ProviderIncompatibleException
。 该例外有以下消息:
A null was returned after calling the 'get_ProviderFactory' method on a store provider instance of type 'Borland.Data.TAdoDbxInterBaseConnection'. The store provider might not be functioning correctly.
我对该例外的解释是,Embarcadero提供的提供商不提供对实体框架的支持。 所以我的问题如下:
Interbase ADO.NET驱动程序是否为实体框架提供支持? 或者我做错了什么?
是否有任何其他驱动程序支持我所需的功能?
任何有关此主题的帮助都将受到高度赞赏。
我在使用成功运行的Microsoft SQL Server数据库时也尝试了相同的代码,因此我认为我的代码通常没有任何问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.