我已经'谷歌'和'Binged'为所有试图解决这个问题的网站... 我没有成功,所以我回到ADO.NET 4.x继续我的工作
我有一个程序,用户可以在其中选择并打开任何数据库...... select数据库的表,视图,存储过程等显示在树中,因此用户可以单击节点并在网格中查看/编辑数据。
在使用EF4(DB First,Model First,Code First等)挣扎几次后,我无法找到一种方法在运行时为用户选择的数据库生成实体......
任何人都可以提供额外的信息...也许是示例代码???
答案 0 :(得分:0)
你做不到。 实体框架(与任何其他ORM一样)用于将数据模型映射到逻辑模型。如果没有映射(并且没有逻辑模型),则没有实体框架。
ADO是这种情况下的方法。
经过一些质询,可以做到这一点,但这涉及到疯狂的步骤。
要做到这一点,你必须从你通过查询master数据库得到的信息中生成edmx xml,从这个xml生成运行时的类(数据上下文和实体),通过它们将它们加载到你的AppDomain中代码dom,然后你可以通过Entity Framework使用这个动态生成的数据上下文。
用一句话来说:对于这种情况,你的数据模型是完全未知和变化的,坚持使用好的'ADO.NET。它专为此而定制。