是否可以在没有DataContext实例的情况下访问Linq to SQL映射数据?
我问,因为我正在编写一些只会触发某些实体和某些实体列的审计数据生成代码。我想在任何Linq DB访问之前在静态构造函数中修复此元数据。
例如,从性能角度来看,最好只发现一次实体的主键列,而不是为ChangeSet中的每个更改实体触发以下代码:
var metaTable = context.Mapping.GetTable(entityType);
var key = (PropertyInfo)metaTable.RowType.DataMembers.Single(
md => md.IsPrimaryKey).Member;
致电之前:
key.GetValue(entity, null),
答案 0 :(得分:2)
是的,您不需要DataContext
的实例,只需要类型。
MappingSource mappingSource = new AttributeMappingSource();
MetaModel mapping = mappingSource.GetModel(typeof(MyDataContext));
我在这里使用AttributeMappingSource
,您可以使用XmlMappingSource
或MappingSource
的其他实现。