Cal*_*ton 56 c# entity-framework visual-studio asp.net-mvc-4 visual-studio-2012
如果你看这里你会注意到这个人正在显示实体模型图,我想知道如何从我的EntityFramework代码第一类创建一个实体模型图.
只是通过查看代码来记住所有内容如何链接在一起会让人感到沮丧.
Den*_*aub 57
随着实体框架电动工具安装在您的解决方案视图,您可以用鼠标右键单击背景下,点击"实体框架",然后选择"查看实体数据模型".
这将从您的类创建一个整洁的图表.
Sla*_*uma 49
实体数据模型图只是EDMX文件的可视化显示.要从Code-First模型获取此类图表,您必须从中创建EDMX文件:
using System.Data.Entity.Infrastructure; // namespace for the EdmxWriter class
using (var ctx = new MyContext())
{
using (var writer = new XmlTextWriter(@"c:\Model.edmx", Encoding.Default))
{
EdmxWriter.WriteEdmx(ctx, writer);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码创建一个Model.edmx
可以在Visual Studio中打开的文件.它将显示模型图.EDMX文件是当前Code-First模型的快照.在代码中更改模型时,必须创建一个新的EDMX文件以反映图中的这些更改.
小智 5
除了斯劳马他的回答。如果您希望能够调整图表的布局,并且不想每次创建后都再次重做,您可以将之前的 EDMX 文件中的 Diagram 节点复制到新的 EDMX 文件中:
string sPath = @"c:\Development\{0}";
try
{
File.Copy(String.Format(sPath, "Model.edmx"), String.Format(sPath, "ModelTemplate.edmx"));
File.Delete(String.Format(sPath, "Model.edmx"));
}
catch (Exception)
{
//no worry, file not found issues
}
using (var ctx = new ShopID.Models.ShopIDDb())
{
using (var writer = new XmlTextWriter(String.Format(sPath, "Model.edmx"), Encoding.Default))
{
EdmxWriter.WriteEdmx(ctx, writer);
}
}
XmlDocument oldModel = new XmlDocument();
oldModel.Load(String.Format(sPath, "ModelTemplate.edmx"));
XmlDocument newModel = new XmlDocument();
newModel.Load(String.Format(sPath, "Model.edmx"));
var nsmgr = new XmlNamespaceManager(newModel.NameTable);
nsmgr.AddNamespace("diagram", "http://schemas.microsoft.com/ado/2009/11/edmx");
XmlNode node = oldModel.SelectSingleNode("//diagram:Diagrams", nsmgr).ChildNodes[0];
XmlNode newNode = newModel.SelectSingleNode("//diagram:Diagrams", nsmgr);
XmlNode importNode = newNode.OwnerDocument.ImportNode(node, true);
newModel.ImportNode(importNode, true);
newNode.AppendChild(importNode);
newModel.Save(String.Format(sPath, "Model.edmx"));
File.Delete(String.Format(sPath, "ModelTemplate.edmx"));
Run Code Online (Sandbox Code Playgroud)
//更新的模型已准备好使用 Visual Studio 打开
归档时间: |
|
查看次数: |
38859 次 |
最近记录: |