没有DataContext的Linq to SQL映射数据

时间:2009-11-18 14:31:09

标签: linq-to-sql audit

是否可以在没有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),

1 个答案:

答案 0 :(得分:2)

是的,您不需要DataContext的实例,只需要类型。

MappingSource mappingSource = new AttributeMappingSource();
MetaModel mapping = mappingSource.GetModel(typeof(MyDataContext));

我在这里使用AttributeMappingSource,您可以使用XmlMappingSourceMappingSource的其他实现。