首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用代码生成实体模型?

如何使用代码生成实体模型?
EN

Stack Overflow用户
提问于 2012-08-24 15:52:07
回答 2查看 712关注 0票数 0

我需要使用代码重新生成我的Entity Model。我不想每次有变化的时候都去right click and update model from database

所以我开始研究EdmGenEdmGen2

我使用EdmGen2为我预先生成我的Model Views

代码语言:javascript
复制
using (System.Diagnostics.Process process = new System.Diagnostics.Process())
{
    process.StartInfo.FileName = @"C:\EdmGen2.exe";
    process.StartInfo.Arguments = @"/ViewGen cs ""C:\Project\EntityFramework\Model\ApplicationEntityModel.edmx""";
    process.StartInfo.WorkingDirectory = @"C:\Project\EntityFramework\Model";
    process.Start();
    process.WaitForExit();
}

这个可以完美地工作。

不,我正在尝试重新生成Entity Model

代码语言:javascript
复制
using (System.Diagnostics.Process process = new System.Diagnostics.Process())
{
    process.StartInfo.FileName = @"C:\EdmGen2.exe";
    process.StartInfo.Arguments = String.Format(@"/ModelGen ""{0}"" ""System.Data.SqlClient"" ""ApplicationEntityModel""", ConnectionString);
    process.StartInfo.WorkingDirectory = @"C:\Project\EntityFramework\Model";
    process.Start();
    process.WaitForExit();
}

这只会生成.edmx文件。无法指定命名空间,因此这对我不起作用。

我是否可以使用任何tooltemplate来完全重新生成我的Entity Model', this includes the.edmxanddesigner.cs`?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-24 21:18:37

我得到了EntityStoreSchemaGenerator的源代码,并能够对其进行编码。

您可以添加这些筛选器等来限制您想要的表。还有一个疯狂的复数运算,需要弄清楚什么时候在实体集合的末尾添加/删除一个"S“。对于以Status结尾的单词的情况,它是失败的,尽管单数是Statu (我总是嘲笑它),但我能够告诉它,Status的复数是Status (即使这不是正式正确的),Status的单数是Status。

代码在这里:http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/30b10ed3-b705-458d-ae1f-19d595bceb39/

我找到了一个类的代码,这个类将所有的文件合并到一个edmx中。http://fusioncrm.googlecode.com/svn-history/r5/trunk/Fusion.Data.Generation/ModelGenerator.cs

我写了一个控制台应用程序,为基于“黄金”数据库的客户端运行这一切,我也讨厌从设计器运行它,因为它总是因为某些原因而略有不同。这种方式似乎总是生成相同的文件,因此在签入到版本控制时更清楚地知道发生了什么变化。

票数 2
EN

Stack Overflow用户

发布于 2012-08-24 16:00:29

这将需要您直接与Visual studio交互(在后台运行它,并命令它执行一些操作),因为类的自动生成是由Visual Studio的自定义工具处理的,该工具必须在visual studio中运行。

此外,这种自动生成也是非常有问题的,因为可能会有一些更改需要手动修复才能使EDMX工作。它们也可能是更改,这些更改将以依赖代码不会构建的方式更改您生成的类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12105243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档