1
我創建使用C#,實體框架4和DB2一些手動更新SQL,在這個簡單的例子的方式...如何從Entity Framework 4.0對象獲取架構名稱?
var UpdateCommand = "UPDATE MY_SCHEMA." + this.Entities.PRODUCT.EntitySet.Name +
" SET STOCK=0";
var AffectedRows = this.Entities.ExeceuteStoreCommand(UpdateCommand);
我想指定的模式與實體名稱(後來,如果在可重用的庫方法中實現,則可以作爲參數傳遞)。所以,我試圖...
var Container = this.Entities.MetadataWorkspace.GetEntityContainer(this.Entities.DefaultContainerName, System.Data.Metadata.Edm.DataSpace.CSpace);
var Set = Container.GetEntitySetByName(this.Entities.PRODUCT.EntitySet.Name, true);
var SchemaName = Set.MetadataProperties["Schema"].Value;
問題是,返回的SchemaName始終爲空!
我見過的解決方案基於解析由實體框架生成的SQL,但可能會被愚弄(文本可能包含任何內容)或特定於SQL Server。這個想法是像數據庫一樣不可知的,因爲EF是。
問題是...如何從EF對象中獲取實體模式名稱,而不是解析生成的SQL並且是不可知的?
不適用於EF 4.0。 –
你是先使用代碼還是先使用數據庫? – maxlego
DB首先我相信(EF實體來自從一個存在的數據庫生成/更新的.edmx文件)。注意:只有CSpace數據空間被填充。 –