【发布时间】:2011-10-28 09:42:54
【问题描述】:
我正在尝试为 Entity Framework Code First 编写一个附加组件,我需要一种方法来在运行时获取模型列的配置。例如,这是DbModelBuilder 在OnModelCreating 上设置的代码:
builder.Entity<NwdEmployee>()
.Property(n => n.ReportsToID).HasColumnName("ReportsTo");
完成此操作后,EntityFramework 知道我的属性名称与表中的列名称不同,但我如何在运行时发现字符串 "ReportsTo" 与 ReportsToID 本人相关?理想情况下,我正在尝试编写如下方法:
public string GetMappedColumnName<TFrom>(DbContext context,
Func<TFrom, object> selector);
会这样使用:
string mappedColumnName = GetMappedColumnName<NwdEmployee>(context,
x => x.ReportsToID);
我只是不知道在哪里可以找到 DbContext 中的映射列名称。他们甚至可以访问吗?
【问题讨论】:
-
我遇到了类似的问题。这是我的解决方案:stackoverflow.com/questions/7008212/…
-
我很想看看您的实际解决方案。您可以将其发布为另一个答案吗?这对我很有帮助。
-
这里有一个解决方案(有点):stackoverflow.com/a/20807366/861716。
标签: c# entity-framework reflection ef-code-first