我正在编写一个小实用程序来从程序集中加载实体数据模型并对它们进行查询。
我尝试使用Reflection来加载派生的ObjectContext
,但ObjectContext
不是从MarshalByRefObject
派生的,因此我无法使用{{1}将参数传递给构造函数(根据我得到的例外情况。)
是否可以使用Reflection加载定义并存储在外部程序集中的实体模型,“后绑定”到EDM,如果提供有效的连接字符串,则对其执行查询? < / p>
答案 0 :(得分:5)
我相信ObjectContext.Metadataworkspace.LoadFromAssembly()正是您所寻找的:
答案 1 :(得分:0)
从ObjectContext派生的EDM模型具有ConnectionString名称,它从它自己的默认构造函数传递给基础构造函数。如下。
public const string ConnectionString = "name=My_Entities";
public const string ContainerName = "My_Entities";
#region Constructors
public My_Entities()
: base(ConnectionString, ContainerName)
{
Initialize();
}
#endregion
您始终可以通过ObjectContext.Connection更改连接详细信息。