[英]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.