當前位置:首頁 » 文件傳輸 » EF訪問資料庫的方式損失了什麼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

EF訪問資料庫的方式損失了什麼

發布時間: 2022-10-18 11:00:40

⑴ 使用EF時,涉及到資料庫分庫,分表該怎麼處理

您好,很高興為您解答。

如果資料庫是自動分的,那麼任何客戶端驅動都沒有必要去管它。如果手工分,那就是訪問不同的庫、不同的表。

如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】

希望我的回答對您有所幫助,望採納!

~ O(∩_∩)O~

⑵ 用EF操作資料庫 對多張表操作是否需要事務

對多張表進行操作是需要事務的。

事務(Transaction)是訪問並可能更新資料庫中各種數據項的一個程序執行單元(unit)。事務通常由高級資料庫操縱語言或編程語言(如sql,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作組成。

⑶ 為什麼不能直接訪問資料庫

首先,如果都直接訪問資料庫,還要程序員做什麼,人都會了。。
其次,沒有人做數據邏輯的審核,數據錯,錄入錯沒人記錄或者阻止(本來都是代碼該完成的事),怎麼辦?會導致很嚴重的損失
再者就是許可權問題。。

⑷ 請介紹一下ADO.NET框架下幾種資料庫訪問技術的優缺點。詳細一點

數據源控制項訪問資料庫:簡單快捷,但是真正的開發中不會去這樣用的,因為1是效率問題2是靈活性不足,這就跟ASP.NET裡面的其他控制項一樣,正的要做大應用是不會用這種東西的,因為擴展性不足,或者為了做到兼容性損失了效率。 使用.NET數據提供程序訪問資料庫:共有4種,SQL Server .NET Framework數據提供程序,OLEDB .NET Framework數據提供程序,ODBC .NET Framework數據提供程序,Oracle .NET Framework數據提供程序。看名字也該明白,針對不同的資料庫使用不同的數據提供程序,這是開發中最經常使用的方式,缺點是米有辦法應對多資料庫的情況,也就是說假如你的應用是面向多資料庫的,那麼有幾種資料庫,基本要寫幾套SQL。 用DATASet:恭喜你不用寫T-SQL了,但是你要學會它的語法,從此不用擔心多資料庫應用的問題。但是慘了,它為了兼容多種資料庫因此T-SQL寫的真的「很兼容」執行效率太低,同樣的一個表現結果,這個SQL嵌套了好幾次,效率灰常低。 LINQ to SQL:老實講,他就是為SQL SERVER而生的,你也不用寫T-SQL了,它的語法學學還是好處頗多,因因為你在LINQ TO OBJECT上也能見到這種語法的影子收益頗多,它的執行效率很快,但是不管怎麼講也沒有你直接用SQL Server .NET Framework數據提供程序,自己寫SQL快,可控製程度高,好處也是顯而易見就像用DATASET一樣,你不用再為了數據持久化問題寫一大堆ORM的東西了。 by the way,目前.NET中,ORM用的比較多的是Nhibernate,但是你如果就想用SQL SERVER還是用LINQ to SQL吧,好處顯而易見,在開發過程中對於資料庫的變更也是比較常見的,你的資料庫欄位不知道會出現在哪個類,哪個文件中,如果用了DATASET,或LINQ2SQL在編譯階段你就可以察覺到這種變更帶來的影響。

⑸ 使用EF時,涉及到資料庫分庫,分表該怎麼處理

如果你的資料庫自動分的,那麼任何客戶端驅動都沒有必要去管它。如果是手工分的,那麼不就是訪問不同的庫、不同的表嘛。
還是要搞清楚前一個問題:你怎樣分。這個不清楚,就等於是在給自己「下套」了,在不知道分庫分表的具體含義時來問這個時髦概念如何用EF來實現,無的放矢了。

⑹ 採用EF開發資料庫,前台使用jqGrid直接獲取數據。現在問題,如果有多表聯合查詢如何解決

若EF是採用代碼優先生成資料庫的話則需要修改EF中對應的Model的代碼,即info中新增一列即可,不需要改動其他內容了;

若EF是採用根據現有資料庫生成的話,需要在資料庫對應表中添加一列,再重新生成EF的代碼即可。

⑺ 使用asp.net EF疑問

你把上面2個搞糊塗了,你用的EF4.1 CODE FIRST吧,他是會根據你的model生成資料庫,並且提供了一個默認的SQL連接。如果指定了字元串,那麼就按照你指定的資料庫來,如果有,在建表在裡面,如果沒有,就建立一個新資料庫。然後,model跟表相關,跟資料庫沒關系。如果不能生成,應該是要報錯的,sql實例不對,沒許可權什麼的,你注意看看。

⑻ c# EF 資料庫連接

如果只是想修改連接的計算機名(或者sql服務名),我試過下面的代碼是成功的。我的步驟,先新建Model,運行成功,然後修改app.config里的連接字元串里的計算機名,運行報錯,然後在用代碼手動修改回正確的計算機名,運行成功。

staticvoidMain(string[]args)
{
NorthwindEntitiesen=newNorthwindEntities();
stringconstr=@"datasource=.sqlexpress;
initialcatalog=Northwind;integratedsecurity=True;
MultipleActiveResultSets=True;App=EntityFramework"";
en.Database.Connection.ConnectionString=constr;
Console.WriteLine(en.Employees.Count());
Console.ReadLine();
}

⑼ 為什麼訪問不了資料庫

重置了IP就可以了。具體如下:
下面的步驟需要一些前提:
你的sqlserver服務已經安裝了,就是找不到伺服器名稱。
1、打開Sql server 管理配置器

或者在命令行輸入:SQLServerManager10.msc
2、點擊MSSQLSERVER的協議,在右側的頁面中選擇TCP/IP協議

3、右鍵點擊TCP/IP協議,選擇「屬性」,需要修改連接資料庫的埠地址

4、跳出來的對話框,裡面有好多TCP/IP的埠,找到「IP3」,更改IP地址 為自己電腦的IP地址(或者是127.0.0.1) 在TCP埠添加1433,然後選擇啟動

5、「IPALL」的所有埠改成「1433」

6、重新啟動服務

7、通過以上1-6步驟設置好埠,重新打開SQL Server Management Studio,在伺服器名稱輸入:(local)或者127.0.0.1,即可登錄資料庫了。
註:腳本之家小編最近安裝了sql2005也是碰到這個問題,就是參考這個修改ip的方法解決的。記得要安裝sql 2005 sp3補丁
VS報錯:
在與 SQL Server 建立連接時出現與網路相關的或特定於實例的錯誤。未找到或無法訪問伺服器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: SQL 網路介面, error: 26 - 定位指定的伺服器/實例時出錯)
解決方法:開始->>SQLServer2005->>配置工具->>SQLServer外圍應用配置器->>
服務和外圍連接的應用配置器->>點擊"遠程連接"->>本地連接和遠程連接->>同時使用TCP/IP和named Pipes->>點"確定"->>重啟SQLserver服務可是我的電腦改不了,SQLServer外圍應用配置器報錯誤信息:更改失敗。(Microsoft.SqlServer.Smo) 其它信息: SetEnable對於ServerProtocol「Tcp」失敗。(Microsoft.SqlServer.Smo)我找到了一個解決的辦法。我的操作系統也是win7:點擊SQL Server Configuration Manager中Sql Server 2005網路配置「MSSQLSERVER」協議,啟動協議「TCP/IP」以及"Name Pipes"。並且停止,重新啟動SQL Server服務。便可以了。

⑽ 用EF連接Oracle資料庫,運行報錯

資料庫為Oracle,就不要使用EF了。

問題已經很明顯。「Make sure the provider is registered in the 'entityFramework' section of the application config file」,就是讓你看看在App.config文件中的<provider>。
【源文件中的內容如下】:

<entityFramework>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</entityFramework>

按理說,只要將<provider />寫成:

<provider invariantName="Oracle.ManagedDataAccess.Client" type="System.Data.OracleProviderServices, EntityFramework.OracleServer" />

之類即可,但是可悲啊!

目前支持EF6的provider有:

(1)Microsoft SQL Server provider
(2)Microsoft SQL Server Compact Edition provider
(3)Devart dotConnect Data Providers 【注意】
(4)Firebird provider
(5)Visual Fox Pro porvider
(6)MySQL
(7)PostgreSQL

1、2、4、5、7均可以從NuGget中獲取。3、7需要到相應的網站獲取。

注意第三個:這個插件就是用於Oracle資料庫的,其為第三方插件,由Devart公司開發。但有兩大致命缺點:1、收費(是30天免費試用,過了30天要麼卸載,要麼付款)。2、目前支持的Oracle的最高版本為:Oracle8.2i。