簡體   English   中英

向下轉換ObjectContext到實體集合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM