我正在使用EF 4.1(数据库优先)开始一个新项目。如果我使用Visual Studio生成edmx,则一切正常。但是,如果数据库中没有删除和重新添加的更改,我似乎无法找到一种刷新edmx的方法。

在以前的项目中(使用EF 3.x?),我们有执行此操作的脚本-edmgen创建csdl,msl和ssdl,然后edmgen2创建edmx和designer.cs文件。

我仍然需要使用edmgen2创建edmx文件吗?还是VS2010版本的edmgen有办法做到这一点?

最佳答案

我在这里创建了功能请求:
http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/3022790-edmgen-exe-should-support-generating-an-edmx-file-

这里也有类似的讨论:
http://social.msdn.microsoft.com/Forums/sa/adodotnetentityframework/thread/a98cddf4-5975-4c20-b88d-d308ed7fa45f

http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/d93cde02-7534-489c-a1bd-72f45ce404be

这里有一篇博客文章:
http://weblogs.asp.net/manavi/archive/2011/05/17/associations-in-ef-4-1-code-first-part-6-many-valued-associations.aspx
(提示:搜索“获取运行时EDM”)

最后两个链接提供了答案:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
  // Additional configuration

  var provider = new DbProviderInfo("System.Data.SqlClient", "2008");
  var model = modelBuilder.Build(provider);
  model.WriteEdmx(provider, new XmlTextWriter(@"C:\temp\my.edmx", Encoding.ASCII));
}

关于visual-studio-2010 - 如何使用Visual Studio 2010和EF 4.1编写.edmx文件的脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9299409/

10-16 09:07