gpt4 book ai didi

c# - 如何在 T4 模板中使用 "read"EF6 EntityTypeConfiguration?

转载 作者:行者123 更新时间:2023-11-30 20:50:13 24 4
gpt4 key购买 nike

我正在尝试编写 T4 模板来为我的模型类生成自定义 View ,模型类位于另一个程序集中,映射基于 EF6 fluent API。

目前,我正在使用反射来获取属性的名称和类型,我的问题是如何读取 ModelConfiguration? ,例如获取主键和相关模型的外键..等。

最佳答案

样本访问模型。注意 DataSpace 有其他 Enum 值

public void EFTools2Test()
{
var context = new MyContext("MYConnie");
ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
MetadataWorkspace workspace = objContext.MetadataWorkspace;
IEnumerable<EntityType> managedTypes = workspace.GetItems<EntityType>(DataSpace.OSpace);
var result = new List<Type>();
foreach (var managedType in managedTypes) {

Console.WriteLine(managedType.FullName);
foreach ( var p in managedType.Properties) {
Console.WriteLine(p.Name );
}
}


}



public void EFToolsTest() {
// http://msdn.microsoft.com/en-us/library/system.data.metadata.edm.dataspace(v=vs.110).aspx
var context = new MyContext("MYConnie");
ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
MetadataWorkspace workspace = objContext.MetadataWorkspace;

var xyz = workspace.GetItems<EntityType>(DataSpace.SSpace);
foreach (var ET in xyz) {
foreach (var sp in ET.Properties) {
Debug.WriteLine(sp.Name + ":" + sp.MaxLength);// just as an example

}
}
}

关于c# - 如何在 T4 模板中使用 "read"EF6 EntityTypeConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22710825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com