[英]How to insert data into Azure Synapse Database with SQLAlchemy
[英]How to Connect to Azure Synapse Database using Entity Framework?
我們的項目中有 Entity Framework DB First 架構,我們需要從關系 Sql 服務器數據庫連接到 Azure 突觸數據庫以進行遷移。 由於 Azure Synpase 是 PAAS 而不是關系數據庫,我們無法使用 EF edmx 將數據庫中的 map 數據導入到我們的模型中。 正如我們所知,EF 是一個 ORM 即 object 關系映射器,它將關系從數據庫映射到對象。
錯誤:
由於以下異常,無法生成 model:
'System.Data.Entity.Core.EntityCommandExecutionException:執行命令定義時出錯。 有關詳細信息,請參閱內部異常。 ---> System.Data.SqlClient.SqlException: 'columnproperty' 不是可識別的內置 function 名稱。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 異常,Boolean breakConnection,Action`1 wrapCloseInAction)
從 Azure 突觸數據庫創建 edmx 時出現以下錯誤
錯誤:
由於以下異常,無法生成 model:
'System.Data.Entity.Core.EntityCommandExecutionException:執行命令定義時出錯。 有關詳細信息,請參閱內部異常。 ---> System.Data.SqlClient.SqlException: 'columnproperty' 不是可識別的內置 function 名稱。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 異常,Boolean breakConnection,Action`1 wrapCloseInAction)
我們需要使用任何方式使用實體框架連接到 Azure 突觸數據庫,而不僅僅是數據庫優先方法,它可以是任何方式。
對於這個問題,我們嘗試了 EF 數據庫優先方法的多個選項,但這里 EF 代碼優先方法解決了我們連接到 Azure 突觸的問題。 使用現有的 edmx,您無法連接到 Azure 突觸。
您需要按照以下步驟解決問題。
IQueryable<test_customer> result = db.customerDbset
.Where(n => n.job.Equals(job))
.ToList().AsQueryable();`
新增controller:
Select 新的 model 和新的 Dbcontext class 在以下字段中:
根據 azure 數據庫表,在 DbContext class 中進行以下更改以進行新映射:
在OnModelCreating
方法中,您需要將新表從 Azure 突觸映射到我們的新表 model class,如上圖所示。 並在 Dbcontext class 中添加如下Dbcontext
例如:
public DbSet<test_customer> customerDbset { get; set; }
完成所有這些后,從現有的 edmx 文件中刪除所有引用,並從您的項目中卸載該 edmx。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.