c# – Interbase XE7和实体框架6.1.2
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – Interbase XE7和实体框架6.1.2,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2309字,纯文字阅读大概需要4分钟。
内容图文
![c# – Interbase XE7和实体框架6.1.2](/upload/InfoBanner/zyjiaocheng/794/3b29d330a457460993f54ef392a651df.jpg)
目前我正在开发一个项目,我想使用Entity Framework为Interbase数据库创建一个数据库层.唯一的问题是我无法让它工作,所以我转向我心爱的SO共同用户.
我目前正在使用:
> Visual Studio 2013 Premium
> Interbase XE7开发人员版(download here)
>实体框架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; }
}
在我的主要内容中,我创作了以下代码:
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();
}
但是,当我运行应用程序时,在执行LINQ查询时会抛出ProviderIncompatibleException.该例外有以下消息:
在“Borland.Data.TAdoDbxInterBaseConnection”类型的商店提供程序实例上调用“get_ProviderFactory”方法后返回null.商店提供商可能无法正常运行.
我对该例外的解释是,Embarcadero提供的提供商不提供对实体框架的支持.所以我的问题如下:
> Interbase ADO.NET驱动程序是否为实体框架提供支持?或者我做错了什么?
>是否有任何其他驱动程序支持我所需的功能?
任何有关此主题的帮助都将受到高度赞赏.
我在使用成功运行的Microsoft SQL Server数据库时也尝试了相同的代码,因此我认为我的代码通常没有任何问题.
解决方法:
据我目前所知,不支持将Interbase数据库与EF连接.但是,应该可以根据EF的指南编写自己的提供程序,可以找到here.
要开始使用,您可能需要查看FireBird提供程序(它是开源的)并且已经在使用EF.如果您研究提供的代码,您可能有一个很好的触发器来为EF编写自己的Interbase提供程序.可以在here找到FireBirds EF .NET Provider的链接
内容总结
以上是互联网集市为您收集整理的c# – Interbase XE7和实体框架6.1.2全部内容,希望文章能够帮你解决c# – Interbase XE7和实体框架6.1.2所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。