【发布时间】:2013-06-04 02:42:42
【问题描述】:
实体属性可以在不同的表中拆分,这意味着单个实体可以将其列映射到不同的表。然后如何在代码中检索实体属性映射到的特定表上的信息。
foreach(PropertyInfo pi in typeof(DbContext).GetProperties())
{
if(pi.PropertyType.IsGenericType && pi.PropertyType.Name.Contains("DbSet"))
{
var t = pi.PropertyType.GetGenericArguments().FirstOrDefault();
var tables = t.GetCustomAttributes(true).OfType<TableAttribute>();
foreach (var entityProperty in t.GetProperties())
{
if (entityProperty.GetCustomAttributes(true).OfType<RequiredAttribute>().Any<RequiredAttribute>())
{
var fieldname = entity.Name;
//I need to match this column with the table it belongs to here
}
}
}
}
到目前为止,我有下面的代码来获取实体属性,从对象本身,我如何确定当前属性映射到的特定表,在我的数据库中?提前致谢。
【问题讨论】:
-
并非如此。我需要将我的实体中的每个列/字段与其所属的表匹配,以便我可以针对特定字段的正确表执行查询。
-
ORM不是用来查询数据库的吗?
-
这是在数据库对象初始化的时候。我想在创建数据库表时为它们添加一些约束。
-
在这种情况下,听起来您正在寻找stackoverflow.com/questions/2614941/…
标签: c# entity-framework