我想使用整个站点中用于Entity Framework连接的现有SqlConnection对象 我不想为将要使用ADO.net实体框架的一个页面使用第二个数据库连接,并且我不想更改整个站点以使用新的Entity Framework连接字符串。
感谢您提供的任何帮助。
答案 0 :(得分:23)
该论坛帖子有答案:
MetadataWorkspace workspace = new MetadataWorkspace(
new string[] { "res://*/" },
new Assembly[] { Assembly.GetExecutingAssembly() });
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
using (EntityConnection entityConnection = new EntityConnection(workspace, sqlConnection))
using (NorthwindEntities context = new NorthwindEntities(entityConnection))
{
foreach (var product in context.Products)
{
Console.WriteLine(product.ProductName);
}
}
“res:// * /”是EF连接字符串中描述xml映射文件位置的部分 - 在本例中是当前程序集中的嵌入资源。
答案 1 :(得分:1)
您可以使用生成的接受EntityConnection的ObjectContext的constructor来执行此操作。当您创建传递SqlConnection的EntityConnection时。
答案 2 :(得分:1)
Andrew Peters,
感谢您的回答。
我一直在使用System.Data.EntityClient.EntityConnection。
它就在我的指尖,但我似乎无法使MetadataWorkspace参数起作用。
感谢您的帮助。