第一感覺還是很新鮮的,你可以自由的控制數據結構。
比如,你想象oracle那樣,給每個表增加4個字段,創建人,創建時間,更新人,更新時間。完全可以創建一個父類包含著四個屬性(甚至可以把四個屬性作為一個復雜類,在父類里聲明一個對象成員),然后讓所有的實體都繼承這個類,這樣ef自己生成的數據庫表都會帶有這4個字段
甚至,你可以把所有表共用的字段提取出來,比如id,name,code,全部放在父類里,這樣子類看起來明了多了
當然,這好像有違poco的思想
?
不好的地方當然也很突出,如果在開發過程中,數據結構需要變動,只能手工修改,沒有有效的監管很容易遺漏變動。或者刪除數據庫,重新創建,這也很扯,開發過程中一般都會產生一些調試用的數據,總是刪數據庫會很麻煩,除非讓開發人員把所有的數據都保存起來
?
實體變動之后,運行程序會出錯,不清楚ef是如何檢測數據庫的一致性的,只截獲了幾個sql
?
SELECT Count(*) FROM sys.databases WHERE [name]=N'mydb'
?
SELECT TABLE_SCHEMA SchemaName, TABLE_NAME Name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'
?
?
SELECT [GroupBy1].[A1] AS [C1] FROM ( SELECT COUNT(1) AS [A1]FROM [dbo].[__MigrationHistory] AS [Extent1] ) AS [GroupBy1]
?
SELECT TOP (1) [Project1].[C1] AS [C1], [Project1].[MigrationId] AS [MigrationId], [Project1].[Model] AS [Model] FROM ( SELECT [Extent1].[MigrationId] AS [MigrationId], [Extent1].[Model] AS [Model], 1 AS [C1]FROM [dbo].[__MigrationHistory] AS [Extent1] ) AS [Project1] ORDER BY [Project1].[MigrationId] DESC
?
?
?
?
?
內部原理未搞清楚,以后再搞