![](/img/trans.png)
[英]Problems trying to attach a new EF4 entity to ObjectContext while its entity collection entities are already attached
[英]Downcast ObjectContext to Entities collection
我在EF4.0中使用數據庫優先方法創建了一個實體模型。
我希望能夠在沒有app.config文件的情況下使用我的模型,因為我的連接設置存儲在單獨的配置介質中。 這迫使我直接使用ObjectContext類,傳入有效的EF連接字符串。 這是我實例化ObjectContext的方法:
var ctx = new ObjectContext(entityConnectionString);
這可以正確執行,並且我可以使用ctx.ExecuteStoreCommand()對數據庫成功運行SQL命令。
我生成的模型的名稱是MyEntities。 這是從ObjectContext派生的,如MyEntities.Designer.cs中所示:
public partial class MyEntities : ObjectContext
但是,如果我嘗試將ctx強制轉換為MyEntities對象:
MyEntities myEntities = (MyEntities)ctx;
我說錯了
無法將“ ctx”(其實際類型為“ System.Data.Objects.ObjectContext”)轉換為“ MyNamespace.MyEntities”
我希望能夠像使用MyEntities一樣使用ctx。 那將允許我訪問EF生成的實體(ctx.entity1,ctx.entity2)。 還有另一種方法嗎?
您不能將對象強制轉換為您喜歡的任何類型。 它實際上必須是這種類型的。
看起來您真正想做的是將連接字符串傳遞給MyEntities
類。 假設生成的代碼尚不提供,只需添加一個新的帶有構造函數的部分類,該構造函數接受一個字符串並將其傳遞給基本ObjectContext
。
public partial class MyEntities : ObjectContext
{
public MyEntities(string connectionString) : base(connectionString)
{ }
}
然后使用以下代碼:
var ctx = new MyEntities(entityConnectionString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.