Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql 没有DataContext的Linq到SQL映射数据_Linq To Sql_Audit - Fatal编程技术网

Linq to sql 没有DataContext的Linq到SQL映射数据

Linq to sql 没有DataContext的Linq到SQL映射数据,linq-to-sql,audit,Linq To Sql,Audit,是否可以在没有DataContext实例的情况下访问Linq到SQL映射数据 我这样问是因为我正在编写一些审计数据生成代码,这些代码只会触发某些实体和某些实体列。在任何LINQDB访问之前,我想在静态构造函数中修复此元数据 例如,从性能角度来看,最好只发现一次实体的主键列,而不是为变更集中的每个变更实体触发以下代码: var metaTable = context.Mapping.GetTable(entityType); var key = (PropertyInfo)metaTable.Ro

是否可以在没有DataContext实例的情况下访问Linq到SQL映射数据

我这样问是因为我正在编写一些审计数据生成代码,这些代码只会触发某些实体和某些实体列。在任何LINQDB访问之前,我想在静态构造函数中修复此元数据

例如,从性能角度来看,最好只发现一次实体的主键列,而不是为变更集中的每个变更实体触发以下代码:

var metaTable = context.Mapping.GetTable(entityType);
var key = (PropertyInfo)metaTable.RowType.DataMembers.Single(
                   md => md.IsPrimaryKey).Member;
致电前:

key.GetValue(entity, null),

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

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

这里我使用的是
AttributeMappingSource
,您可以使用
XmlMappingSource
MappingSource的其他实现。因为我刚刚将表名拖到Visual Studio Linq模型窗口中,所以我假设我只需要一个AttributeMappingSource映射源?是的,VS设计器使用属性。