使用Reflection连接到实体模型

我正在编写一个小实用程序来从程序集中加载实体数据模型并对它们进行查询。

我已经尝试使用Reflection来加载派生的ObjectContext ,但是ObjectContext并不是从MarshalByRefObject派生的,所以我不能使用Activator.CreateInstance()将参数传递给构造函数(根据我得到的exception。)

是否可以使用Reflection加载定义并存储在外部程序集中的实体模型,“后绑定”到EDM,如果提供有效的连接字符串,则对其执行查询?

我相信ObjectContext.Metadataworkspace.LoadFromAssembly()是你要找的:

http://msdn.microsoft.com/en-us/library/bb495513.aspx

从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更改连接详细信息。